0

我必须处理一个简单的登录文件。在许多 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";
4

5 回答 5

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');
    });
于 2012-12-29T08:13:45.657 回答
1

使用echo语句输出数据,如果登录成功echo 'success';

于 2012-12-29T07:50:25.223 回答
1

这是关于如何调试 AJAX 请求的答案。首先,使用 Chrome(或 Safari,或安装了 Firebug 插件的 Firefox),然后从设置菜单中打开开发者工具。在网络面板中,您可以看到请求/响应。这可能不是一个直接的答案,但请尝试使用带有“网络面板”的 Chrome 开发人员工具来查看请求/响应/cookies/headers。

这将为您省去猜测的麻烦,它会逐字显示响应。然后你可以下次解决它;)和之后的时间

您是否能够看到请求/响应?如果没有,我建议一个简单的

alert(JSON.stringify(data)) 

...如果您在使用 Chrome 调试器时遇到问题,请从您的回调函数中获取。

于 2012-12-29T10:05:29.170 回答
0

尝试将 post 的 dataType 设置为 'html'

于 2012-12-29T07:57:41.313 回答
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");
            }
        };
    });
});
于 2012-12-29T08:08:37.917 回答