在jQuery中比较从php返回的字符串不起作用

时间:2011-08-07 07:14:16

标签: php jquery html string if-statement

我正在返回一个字符串形式的php并将其与jQuery中的另一个字符串进行比较。我100%确定字符串匹配(好吧,至少是相同的值...),但我的if子句仍然认为不同。

这是我的php脚本中设置返回值的部分:

if (!$result){
        echo "false";
        exit();
    }

这是我执行匹配的jQuery:

$.post("registeraccount.php",$(this).serialize(),function(msg){
        //alert the response from the server
        alert(msg + " = " + (msg == "false"));
        if(msg == "false"){
            $("#adminarea").html("Error");

        }else{
            $("#adminarea").html("Success");
        }

   });

无论字符串是否相等,它总是在网页上打印“成功”。

在警报中,我得到以下结果“false = false”。因此,(msg ==“false”)是错误的。

如果字符串相等则字符串不正确,我该如何解决呢?

2 个答案:

答案 0 :(得分:4)

我认为原因是你的服务器输出msg永远不会完全“false”,因为PHP脚本中添加了一些行结尾或类似的东西(您可以检查msg是否具有您希望验证此假设的长度)。在这种情况下,您可以尝试使用它:

 if (msg.match(/false/)) {

如果需要,它会进行一些不太严格的比较,确保输出包含字符串“false”(在任何位置)。如果它有效,我建议你使用这个比较:

 if (msg.match(/^false$/)) {

保证false成为文字的整行。

答案 1 :(得分:-3)

您必须使用===来比较JavaScript中的相等性。

如果你有时间看看有关javascript的Crockford视频系列。它涵盖了这个以及许多其他javascript主题。