这似乎是一个相对简单的问题,我对使用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"> </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"> </li>
</ul>
</div> <!-- / top -->
答案 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或其他任何操作)。