我一直在我的网站中使用 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 语句逻辑看起来很简单。我无法解决这个问题..
最佳答案
您的 php 文件中是否有任何额外的空格。例如在开始或结束时。
你是否用 ?> 关闭你的 php 文件,如果是,则不要。
您可以尝试从响应文本中删除空格。
newId = xmlhttp.responseText.replace(/(^\s+|\s+$)/g, '');
关于php - Javascript - If 语句问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5027766/