【问题标题】:Javascript - If Statement WoesJavascript - 如果语句有问题
【发布时间】:2011-02-17 10:34:41
【问题描述】:

我一直在我的网站中使用 AJAX。 AJAX 显然是一种双向通信。

这是与 ID 或单词 ERROR 相呼应的 PHP 代码:

$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 语句逻辑看起来很简单。我就是解决不了这个问题..

【问题讨论】:

  • 尝试将 die("ERROR: ") 更改为 (die("DB_ERROR") 之类的其他内容,看看您是否仍然收到相同的警报?
  • 逻辑似乎是正确的,可能newId 不是完全 "ERROR"。也许不知何故有一个白人空间。试试newdId.replace(/\s+/g, '') === "ERROR"
  • 您也可以安装 firebug 并在控制台中准确检查 ajax 调用返回的内容,以确保安全。
  • 我会尝试在警报中添加一些额外的部分,例如 alert('If clause'+newId)... 这肯定会有所帮助
  • 好的,我想我已将问题缩小到我的 quickCheckQuery 语句。 - 我会更新!

标签: php javascript mysql ajax if-statement


【解决方案1】:

您的 php 文件中是否有任何额外的空格。例如在开头或结尾。

您是否使用 ?> 关闭您的 php 文件,如果是,请不要。

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

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

【讨论】:

    【解决方案2】:

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

    否则,要在没有此的情况下进行调试,请尝试警告此: alert('"' + newId + '"'); 看看你是否有尾随空格

    【讨论】:

      【解决方案3】:

      因为这可能会进行技巧检查

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

      【讨论】:

        猜你喜欢
        • 2014-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-25
        相关资源
        最近更新 更多