jQuery'If'语句字符串比较不起作用

时间:2010-07-13 00:49:39

标签: jquery ajax string comparison if-statement

我正在努力做一些非常简单的事情。这是代码:

        if(data == 'success') {

            alert('foo');

        } else {

            alert(data);

        }

我简化了它,但这就是理解正在发生的事情的必要条件。变量'data'是AJAX调用的结果,如果这有任何区别的话。问题在于它总是转到'else'语句并且它会提醒'成功',如果它转到'else'则不应该这样。知道这里发生了什么吗?

编辑:这是jQuery中的完整AJAX代码:

$.post("/manage_sites.php", {before:before, edit:after}, function(data){

        if(data == success) {

            alert('blah');

        } else {
            alert(data);
        }
    });

然后在PHP响应中:

...code....
$update = mysql_query("UPDATE users SET feeds = '$afterFeed' WHERE username = '$name'") or     die("Query Failed");

if($update) {

    echo  'success';  //this is the 'string' that is being given to 'data'
}

3 个答案:

答案 0 :(得分:29)

您可以使用$.trim()在客户端修复此问题:

if($.trim(data) == 'success') {

或者,一个更好的方法是删除来自服务器端的新行,可能是PHP中的某个错误的新行,在<? ?>块之前或之后检查,这通常是在哪里他们突然出现了。

或者,输出内容后退出,如下所示:

if($update) {
  echo 'success';
  exit();
}

答案 1 :(得分:0)

你可以删除尾随?&gt;在您的文件中,如果它是文件中的最后一行。我想回应对原始问题的评论,但我不知道如何。

答案 2 :(得分:0)

客户端验证工作正常。

$.trim() fine.

谢谢你,尼克。我花了很长时间才明白为什么它不起作用......