вызов php файла через ajax не работает - PullRequest
0 голосов
/ 12 апреля 2011

Это кажется относительно простым вопросом, и я довольно новичок в использовании ajax, но я видел сообщение о возможности вызова скрипта PHP, когда срабатывает событие OnClick. Я пытаюсь уничтожить сеанс, когда пользователь щелкает ссылку «Выйти», поэтому я хочу вызвать файл logout.php, когда произошло событие OnClick. Моя проблема в том, что при нажатии на ссылку ничего не происходит.

Вот мой код:

$(document).ready(function() {

// Expand Panel
$("#open").click(function(){        
    //when the user clicks the logout button
    $.ajax({
        url: "logout.php"
    )};
}); 
}); 



<div class="tab">
    <ul class="login">
        <li class="left">&nbsp;</li>
        <li><?php if(isset($_SESSION['username'])){echo $_SESSION['username'];}else{echo 'Hello Guest!';}?></li>
        <li class="sep">|</li>
        <li id="toggle">
            <a id="open" class="open" href="#">Log Out</a>      
        </li>
        <li class="right">&nbsp;</li>
    </ul> 
</div> <!-- / top -->

Ответы [ 3 ]

0 голосов
/ 12 апреля 2011

Полагаю, вы ожидаете, что выводится файл logout.php. Я думаю, что ваш код может работать, но вы забыли сообщить ajax, куда поместить полученные данные.

Попробуйте что-то вроде этого:

$.ajax({
  url: 'logout.php',
  success: function(data) {
    $('.result').html(data);
    alert('Logout completed.');
  }
});

Где «result» указывает на div, в который вы хотите загрузить ответ.

0 голосов
/ 12 апреля 2011

Использование $ .ajax - это не то же самое, что нажатие на обычные ссылки. $ .ajax не «следует» по ссылке, он загружает данные из этой ссылки в документ без обновления страницы.

Что вам нужно сделать, это сделать то, что вы хотите, в файле logout.php, а затем вы отправили информацию о том, успешно ли выполнен выход из системы. Вы делаете это, выводя HTML, XML или JSON, который вы проверяете в своем коде javascript и предпринимаете соответствующие действия (перенаправить пользователя, заблокировать пользовательский интерфейс или что-то еще).

0 голосов
/ 12 апреля 2011

Попробуйте сделать это:

$(document).ready(function() {
  alert('loaded!')
  // Expand Panel
  $("#open").click(function(){      
    //when the user clicks the logout button
    $.ajax({
      url: "logout.php"
    )};
    alert('clicked!')
  }); 
});

Если отображается всплывающее окно с надписью нажал! тогда событие запускается. Скажите, что происходит, чтобы мы могли сузить его до сбоя $ .ajax или от того, что событие click не было запущено.

Если вы используете firebug, вы можете перейти к панели консоли и проверить XmlHttpRequests, чтобы внимательно изучить любые ответы, возвращаемые удаленным сценарием, если вы отправили какие-либо ответы из сценария, который является.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...