Jquery Ajax PHP-如何确定PHP代码是否成功执行?

Jquery Ajax PHP-如何确定PHP代码是否成功执行?,php,jquery,ajax,Php,Jquery,Ajax,这就是我的想法,我的主页上有一个登录jquery对话框,阻止任何人使用该网页(在登录表单对话框后面)。我使用ajax将输入的信息提交到php页面,然后检查数据库中是否存在用户名/密码组合。如果是,则返回true,然后关闭对话框(允许访问站点) 如何使用ajax检查我的php脚本(来自已执行页面)是否返回true或false? 我假设ajax函数的成功/错误选项正在检查这一点,但下面的代码似乎不起作用 $('.login').dialog({ closeOnEscape: fals

这就是我的想法,我的主页上有一个登录jquery对话框,阻止任何人使用该网页(在登录表单对话框后面)。我使用ajax将输入的信息提交到php页面,然后检查数据库中是否存在用户名/密码组合。如果是,则返回true,然后关闭对话框(允许访问站点)

如何使用ajax检查我的php脚本(来自已执行页面)是否返回true或false? 我假设ajax函数的成功/错误选项正在检查这一点,但下面的代码似乎不起作用

    $('.login').dialog({
    closeOnEscape: false,
    title: false,
    modal: true,
    width: 'auto',
    show: {effect: "fade", duration: 1500},
    title: 'Login',
    buttons: {
        "Login": function() { 
            $.ajax({
                async: false,
                type: 'POST',
                url: 'sql/login.php',
                success: function(){
                    alert( "Success!");
                },
                error: function(){
                    alert( "Failed!" );
                },
                dataType: "html"
            });
        }
    }
});
$(".login").dialog().parents(".ui-dialog").find(".ui-dialog-titlebar").remove(); 

否。成功和错误选项与XHR请求的成功或失败相关。您需要您的php脚本来输出一些东西并进行检查。例如,如果您的php脚本输出“ok”(即,
echo(“ok”);
),如果验证成功,您将使用像这样的ajax请求

$.ajax({
  url: 'sql/login.php',
  success: function(data) {
    if(data=="ok") { 
       alert('Login successfull.');
    } else {
       alert('Login failed.');
    }
  }
});
在login.php中:

   if($_POST['data']){

        $curData = $_GET['country'];
        $query = "SELECT * FROM yourTable 
                    WHERE tblData = '$curData'";
        $result = mysql_query($query) or die;

        if($result>0)
               echo "<p class='checkExistance'>Data Exists</p>";
            else
               echo "<p class='checkExistance'>Data doesnt Exist</p>";
    }
并没有真正检查这是否有效,但你基本上明白了。在AJAX调用中,执行以下操作:

$.ajax({
   //
   ..
   success:isSuccess

});

or 

success:function(){
    if($('.checkExistance').text() === "Data Exists"){
                 success($('.checkExistance').text()); //alert success!
        }else{
               success($('.checkExistance').text());
        }
}

请确保在success()函数中实现alert()。希望这会有所帮助。

我所做的是在php的末尾添加一个echo,其中变量为true或false,我在success选项中实现了此函数,如下所示:

success: function(response){
                    if(response){
                            alert( "Success!");
                            }else{
                            alert( "Failed!" );
                                 }

                    }
这对我很有用,你可以把它放到php中

if($myvar){
$anothervar=1;
}else{
$anothervar=0;
}
echo $anothervar;
所以你可以这样做:

success: function(response){
                    if(response==1){
                            alert( "Success!");
                            }else{
                            alert( "Failed!" );
                                 }

                    }
这就是我做这件事的方式,而且效果很好
希望它有用

根据您的信息,我假设您的php页面将进行验证,并且您让它们在php脚本中返回true或false

代码中有两个问题

1.您的php页面本身将返回true或false,另一方面,除非您像上面Tomm所说的那样发送结果,否则它们不会将结果发送到ajax结果


2.$.ajax的success()和error()是由请求的成功而不是结果决定的,这意味着即使您的php回显为“false”,它也会触发success()事件,因为请求已成功发送。

只是想把它抛到一边。如果用户未经授权,您是否仅限制通过客户端方法(javascript)访问内容?如果是这样的话,你会想重新考虑这一点,因为任何有Firebug的人都可以绕过你的安全问题。那么,你对数据库的查询可能有问题
success: function(response){
                    if(response==1){
                            alert( "Success!");
                            }else{
                            alert( "Failed!" );
                                 }

                    }