Javascript - 如果声明困难

时间:2011-02-17 10:34:42

标签: php javascript mysql ajax if-statement

我一直在我的网站上使用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语句逻辑似乎很简单。我只是不能解决这个问题..

3 个答案:

答案 0 :(得分:2)

你的php文件中是否还有其他空格。例如在开始或结束。

你是否用?>关闭你的php文件,如果不是这样的话。

您可以尝试从responseText中删除空格。

newId = xmlhttp.responseText.replace(/(^\s+|\s+$)/g, '');

答案 1 :(得分:0)

你尝试过firebug或开发者工具栏吗? 然后你可以在你的javascript中设置一个断点(按f12打开,然后点击脚本选项卡,找到你的接收脚本,然后点击设置if的开头的断点 - 然后你可以设置手表等),因为这所有看起来都是正确的 - 但正如所建议的那样,在错误之前/之后可能存在一些非字母字符 - 当你在其上设置监视时,这将很清楚。

否则,要在没有这个的情况下进行调试,请尝试提示: alert('“'+ newId +'”'); 看看你是否有尾随空格

答案 2 :(得分:0)

因为这可能正在进行技巧检查

die("ERROR: ".mysql_error());