我一直在我的网站上使用AJAX。 AJAX显然是一种双向沟通。
这是PHP代码,它回显ID或单词ERROR:
$quickCheckQuery = mysql_query("SELECT * FROM pos WHERE type='$type' AND design='$design' AND medium_id='$medium'")or die("ERROR: ".mysql_error());
if(mysql_num_rows($quickCheckQuery)==0){
mysql_query("INSERT pos VALUES(NULL, '$title', '$type', '$design', NULL, NULL, NULL, NULL, NULL, NULL, '$medium')")or die("ERROR: ".mysql_error());
echo mysql_insert_id();
}else{
echo "ERROR";
}
这确实会将ERROR或插入的ID发送回客户端,如预期的那样。
这是我在javascript中的“接收回复”:
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var newId;
newId = xmlhttp.responseText;
if(newId=="ERROR"){
alert(newId);
alert("There is an ERROR");
}else{
alert(newId);
alert("Processing Files");
}
}
现在,这样做的原因是每个条件我收到2个警报 - 其中一个可能是:
Alert 1: ERROR
Alert 2: There is an ERROR
OR
Alert 1: 5
Alert 2: Processing Files
然而,我实际得到的是:
Alert 1: ERROR
Alert 2: Processing Files
我的if语句逻辑似乎很简单。我只是不能解决这个问题..
答案 0 :(得分:2)
你的php文件中是否还有其他空格。例如在开始或结束。
你是否用?>关闭你的php文件,如果不是这样的话。
您可以尝试从responseText中删除空格。
newId = xmlhttp.responseText.replace(/(^\s+|\s+$)/g, '');
答案 1 :(得分:0)
否则,要在没有这个的情况下进行调试,请尝试提示: alert('“'+ newId +'”'); 看看你是否有尾随空格
答案 2 :(得分:0)
因为这可能正在进行技巧检查
die("ERROR: ".mysql_error());