0

This ajax code posts the variables and displays $('#data').html(data); which is been eco-ed in php.-which works

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

However the problem lies on the next line which does not work:

 if (data == 'login') {
     alert("sucess");
 }

This code is supposed to show a dialog box if the data == login I have looked through different tutorials and this code is supposed to be working but its doesn't for some reason.

Thanks!

4

3 回答 3

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();
于 2013-04-29T12:55:36.633 回答
0

data 保存 login.php 响应的返回结果。

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

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

于 2013-04-29T12:57:47.277 回答
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 注入是可能的。

于 2013-04-29T12:59:28.973 回答