【发布时间】:2012-08-09 02:30:54
【问题描述】:
由于某种原因,我无法让它工作。我想要做的是,当单击按钮时,(通过 ajax)执行一个 php 文件。 Aka,如果我不使用 ajax,我们会看:
<a href="file.php">dfgdfg</a>
我希望在不离开页面的情况下执行文件。
这是我的自动取款机:
$(".vote-up").live('click', function(e) {
$.ajax("file.php", function(){
alert("Executed file");
});
});
这似乎不起作用。我真的很困惑 jQuery ajax 函数一般是如何工作的,而没有处理任何远程复杂的事情。
添加问题:
.ajax({
url: 'includes/login-check-jquery.php',
success: function (data) {
if(data == 1){
alert("Logged in!!!");
}else{
window.location = data;
}
error: function (xhr, status, error) {
// executed if something went wrong during call
if (xhr.status > 0) alert('Error: ' + status); // status 0 - when load is interrupted
}
});
});
在上面的代码中,如果返回的数据等于“登录”,则会出现一个消息框。否则它将重定向到该位置(以数据形式发送)。由于某种原因,此 if 语句不起作用,但数据正在按预期返回。
我的 PHP 代码是:
<?php
if (!$user->logged_in){
echo "../login/index.php";
}else{
echo "1";
}
?>
有什么想法吗?
【问题讨论】:
-
尝试用
on替换live,因为 live 已被弃用!还要检查php文件的路径是否正确 -
这在我看来并没有错——您是想从 PHP 文件中获得响应,还是只是设置了一些东西而忘记了它?
-
我不相信您的匿名函数会在没有从您的网络服务器获得非错误状态代码的情况下执行。您可以使用 Firebug 或 Chrome 的内置开发人员工具的网络选项卡之类的工具来查看请求中的状态代码。
-
查看
window.location:developer.mozilla.org/en-US/docs/DOM/window.location -
检查@therao 的答案——您可能希望确保以纯文本或 JSON 形式传回某些内容。