通过ajax调用php文件无法正常工作

时间:2011-04-12 11:55:49

标签: php jquery ajax

这似乎是一个相对简单的问题,我对使用ajax很新,但我看到一篇关于在触发OnClick事件时能够调用PHP脚本的帖子。我试图在用户单击“注销”链接时销毁会话,因此我想在发生OnClick事件时调用logout.php文件。我的问题是单击链接时没有任何反应。

这是我的代码:

$(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 :(得分:0)

尝试这样做:

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

如果显示弹出的说法点击了!然后事件被触发。告诉我发生了什么,以便我们可以将其缩小到$ .ajax失败或点击事件未被触发。

如果您正在使用firebug,那么您可以转到控制台面板并检查XmlHttpRequests以密切查看从远程脚本返回的任何响应,如果您已从脚本发回任何响应。

答案 1 :(得分:0)

我想您希望显示logout.php文件的输出。我认为你的代码可能正常工作,但你忘了告诉ajax把它收到的数据放在哪里。

尝试这样的事情:

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

“结果”指向要加载响应的div。

答案 2 :(得分:0)

使用$ .ajax与单击常规链接不同。 $ .ajax不会“跟随”该链接,它会将该链接中的数据加载到文档中而不刷新页面。

您需要做的是在logout.php文件中执行您想要的操作,然后发送有关注销是否成功的信息。您可以通过输出HTML,XML或JSON来执行此操作,您可以在javascript代码中检查并采取适当的操作(重定向用户,锁定UI或其他任何操作)。