Ajax不会从php返回特定数据

时间:2013-04-29 12:46:36

标签: php ajax login

此ajax代码发布变量并显示$('#data').html(data);eco-ed的{​​{1}} .-哪个有效

php

然而,问题在于下一行不起作用:

$.post('login.php',{username:username,password:password},
 function(data)
 {
    $('#data').html(data);
    if (data=='login'){
        alert("sucess");
    }
 });

如果 if (data == 'login') { alert("sucess"); } ,此代码应显示一个对话框 我已经浏览了不同的教程,这段代码应该可以工作,但它不是出于某种原因。

谢谢!

3 个答案:

答案 0 :(得分:2)

您可以简单地输入JSON数据类型并使用json数组作为响应..

$.post('login.php',{username:username,password:password},
 function(data)
 {
    if (data.status=='login'){
        $('#data').html(data.status);
        alert("sucess");
    } else{
        alert('not login');
    }
 }, 'json');

在你的PHP中

<?php
#.. put any code before that response because after it you must put exit. 
# No other data except it must be sent! Else you will break it..
echo json_encode(array('status'=>'login'));
exit();

答案 1 :(得分:0)

data保存login.php。

响应的返回结果

在你的情况下,它可能会返回html,例如<h1> welcome user x</h1>(我不知道你的代码返回了什么,所以它是一个例子)。

如果是这种情况,您应该检查代码是否有效。我建议使用JSON。您的login.php会检查登录数据。如果登录尝试有效,则返回login:true;并重定向用户。 当有效时,只返回数据错误并用jquery显示它们。

答案 2 :(得分:0)

使用此代码,如果您的回复失败,您将获得适当的警报。

var jqxhr = $.post("login.php", {username : username, password : password}, function(data) {
  alert("success" + data);
  console.log(data);
},'text')
.done(function() { alert("second success"); })
.fail(function() { alert("error"); })
.always(function() { alert("finished"); });

否则你会收到“成功”和你的数据的提醒。

有关如何使用此功能的更多信息,请参阅http://api.jquery.com/jQuery.post/

确定它有效。放入login.php

<?php 

echo 'ajax works';
exit;

?>

您使用将被删除的旧功能。使用PDO或其他引擎。 您的代码不安全。 SQL注入是可能的。