繁体   English   中英

如何从PHP返回数据以在jQuery(ajax)中使用?

[英]How To Return Data from PHP to Use in jQuery(ajax)?

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

尝试通过将函数作为参数而不是通过调用函数来做到这一点。

$('#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');
    });

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

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

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

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

alert(JSON.stringify(data)) 

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

尝试将dataType作为“ html”提供给发布

$('#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");
            }
        };
    });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM