即使语句为真,Jquery if语句也不起作用

时间:2013-12-31 09:13:30

标签: javascript php jquery

我有一个简单的if语句,当我将这些特定数据发送到数据库时,我希望php代码发送一个代码,告诉javascript它可以继续,但如果php脚本发回一个错误的代码,javascript现在是向前移动并显示某个文本或其他东西。

php代码工作正常,但由于某些原因,我的javascript文件根本不起作用。

我的javascript假设是对parse.php的ajax请求并接收parse.php发回给它的数据,如果parse.php说200它假定加载特定的项目。

以下是我的某个系统的代码:

$(document).ready(function(){
    $("#chatForm").submit(function(){
        var chatHash = $("#chatHash").val();
        var body = $("#chatPoster").val();
        var by = $("#userBy").val();

        if(chatHash != "" && body != ""){
            $.post('parse.php',{chatHash: chatHash, body: body, userBy: by},function(data){
                if(data == "200"){ // Right here is where its messing up
                    $("#chatPoster").val("");
                    $.get('getChatMessages.php?hash=' + chatHash,function(data2){
                        $(".allMsgs").html(data2);
                    });
                } else {
                    alert('Critical error');
                }
            });
        } else {
            alert('Error');
        }
    });
});

以下是parse.php页面的代码:

$chat = new ChatSystem;
if(isset($_POST['chatHash']) && isset($_POST['body']) && isset($_POST['userBy'])){
    $chat->sendMessage($_POST['userBy'],$_POST['chatHash'],$_POST['body']);
}

以下是parse.php页面引用的ChatSystem类的代码:

    public function sendMessage($user,$hash,$body){
    global $db;

    $date = date("Y-m-d");
    $time = date("H:i:s");

    $timestamp = "$date $time";
    if(empty($user) == false && empty($hash) == false){
        $db->query("INSERT INTO chat_messages VALUES('','$user','$body','$timestamp','','0','$hash')") or die("error");
        echo '200'; 
    }
}

即使我的PHP代码完美运行,javascript仍然会搞砸。我的PHP代码发送回200像我要求但但jquery混乱了

1 个答案:

答案 0 :(得分:-1)

看看这里,http://api.jquery.com/jquery.post/。 您需要成功回调函数的第二个参数才能捕获响应状态代码。 I.E. function(data,statusCode){ // check the status code here}

相关问题