ajax响应总是在其他部分

时间:2012-01-05 17:54:51

标签: php ajax

我坚持使用ajax响应,它始终位于其他部分,并且在会话的类中称为statusmsg并且还添加了元标记。 它在localhost中很好,但在现场没有。

输出:

<div class="statusmsg">
Welcome
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>Untitled Document</title>
no
</div>

这是我的ajax jquery

的登录代码
      $.ajax({             
                    type: "POST",  
                    url:"scripts/ajax_login.php",  
                    data:"account="+account+"&pswd="+password,

                    beforeSend: function()
                    {
                        $(".login_result").show();
                    },
                    success: function(resp)
                    {  

                        if($.trim(resp) == 'no')
                        {   
                            $(".warn_msg").html("Wrong Username/Email And/or Passwrd");
                            return false;                               
                        }
                        else
                        {   
                            $(".statusmsg").html("Welcome "+$.trim(resp));
                            $(".loginArea").hide();
                            $(".sh_logout").show();                                                     
                        }
                    }, 

                    complete: function()
                    {
                        $(".login_result").hide();
                    },

                    error: function(e)
                    {  
                    alert('Error: ' + e);  
                    }  

               }); //end Ajax   

                   }//else   
              return true;
               }//function

=========================================
ajax_login.php

session_start();

include(dirname(dirname(__FILE__))."/includes/config.php");

$account  = mysql_real_escape_string($_POST['account']);
$password = mysql_real_escape_string(md5($_POST['pswd']));

$sql = (strpos($account,'@')===false)?"SELECT * FROM register_members WHERE username = '".$account."' AND password = '".$password."'":"SELECT * FROM register_members WHERE password = '".$password."' AND email = '".$account."' ";

$qry = mysql_query($sql);
$msg = mysql_num_rows($qry); //returns 0 if not already exist
$row = mysql_fetch_assoc($qry);


if(!$msg > 0)
{   
    echo trim('no');
}
else
{
$_SESSION['user'] = $row['username'];       
$user = trim($_SESSION['user']);
echo trim($user);   
}

1 个答案:

答案 0 :(得分:2)

if(!$msg > 0)
{   
    echo trim('no');
}

应该是

if !($msg > 0)
{   
    echo trim('no');
}

否则你在否定$ msg中的值。如果它为0则变为1,如果为1,则变为0.(布尔值的基本否定)。

因此,1和0都不会大于0,因此它永远不会echo trim('no');

但基本上你可以检查$msg是否等于零,如:

if ($msg == 0) {
   echo trim('no');
}
else {

}