我必须处理一个简单的登录文件。在许多Web教程中,我已经读过,对于jquery中的任何Ajax请求,回调函数是function(data)
,而data
是由服务器端脚本返回的。
好吧,我的服务器端脚本是PHP。我想知道如何从PHP返回数据,这些数据将存储在jquery的data
中,我可以使用条件循环来处理它们。
这是我的jquery代码:
$('#loginform').submit( function() {
var querystring = $(this).serialize();
$.post('login.php', querystring, processLI );
function processLI(data) {
if (data == 'success'){
alert("Successful");
var url = "game.php";
$(location).attr('href',url);
}
else
alert ('Login Failed');
}
我在我的php文件中使用简单的return语句,这似乎根本不起作用。这是login.php
文件。我刚刚在这里发布了必要的部分。
$statement = $connection->prepare("SELECT * FROM users WHERE username = '$username'");
$statement->execute(array());
$result = $statement->fetch(PDO::FETCH_ASSOC);
if ($result['password'] == $safepass) {
setcookie("Login", true);
echo 'success';
}
else
echo "Failure";
答案 0 :(得分:2)
尝试这样做,将函数作为参数,而不是通过调用函数。
$('#loginform').submit( function() {
var querystring = $(this).serialize();
$.post('login.php', querystring, function(data){
if (data == 'success') {
alert("Successful");
var url = "game.php";
$(location).attr('href',url);
}
else
alert ('Login Failed');
});
答案 1 :(得分:1)
如果登录成功echo 'success';
echo
语句输出数据
答案 2 :(得分:1)
这是关于如何调试AJAX请求的答案。首先,使用Chrome(或安装了Firebug插件的Safari或Firefox),然后从设置菜单中打开开发人员工具。在网络面板中,您可以看到请求/响应。这可能不是直接的答案,但请 - 尝试使用Chrome开发人员工具和“Net Panel”查看请求/响应/ Cookie /标题。
这将为您省去不必猜测的麻烦,它会逐字显示您的回复。然后你可以在下次解决它;)和
之后的时间您是否能够看到请求/回复?如果没有,我建议一个简单的
alert(JSON.stringify(data))
如果您在使用Chrome调试程序时遇到问题,请从回调函数中....
答案 3 :(得分:0)
尝试将postType的dataType作为'html'
答案 4 :(得分:0)
$('#loginform').submit( function() {
var querystring = $(this).serialize();
$.ajax({
url : 'login.php?'+querystring,
cache : false,
success : function(data) {
if(data == "success") {
alert("Successful");
var url = "game.php";
$(location).attr('href',url);
} else if(data == "failure") {
alert("Login Failed");
}
};
});
});