我有一个简单的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混乱了
答案 0 :(得分:-1)
看看这里,http://api.jquery.com/jquery.post/。
您需要成功回调函数的第二个参数才能捕获响应状态代码。
I.E. function(data,statusCode){ // check the status code here}