我的jQuery $ .post函数返回一个值但无法比较它

时间:2013-01-27 11:14:08

标签: jquery

我不确定为什么if / else语句在比较响应成功时,并不是真的。第一个警报,警告“成功”,但是当我尝试比较它时...它没有发现它是真的。我究竟做错了什么?提前谢谢。

    $("#suggestion_button_box").click(function(){     
    var suggestion = $("#suggest_input_id").serialize();

    if(suggestion != "") {
        $.post('suggest_tag.php',suggestion, function(response) {

            alert(response);    

            if(response == "success") {
                alert('yes');       
            }else {
                alert('no');
            }

    });

    }
});

PHP部分

echo "success";

3 个答案:

答案 0 :(得分:1)

正如我上面提到的 - jQuery可能会将结果字符串解释为纯文本之外的其他内容。默认情况下,jQuery.post()会尝试智能地猜测返回的数据类型。 API提供了4个参数选项,尝试将第四个参数(dataType)设置为“text”并查看它是否开始运行。

修改

我注意到你上面的评论,这改变了一些事情,所以'数据'现在可能是XML / HTML元素。

你必须看看返回的对象是否是XML元素,如果是这样,你可以进行DOM遍历并可能通过执行$(response).text()来检索。

编辑2 您是否收到了回复< code>“success”< / code>或者你是否试图表明它是<?php echo“success”;?>?

答案 1 :(得分:0)

从我的到期,你的一个PHP脚本中可能有一些白色字符(即之前

如果这不能解决您的问题,您可以随时使用JS trim()函数:

if(response.trim() == "success") {

甚至jQuery.trim()也是更多的crossbrowser。

答案 2 :(得分:0)

试试这个:

$("#suggestion_button_box").click(function(){
    var suggestion = $("#suggest_input_id").val();
    if(suggestion != "")
    {
        $.post('suggest_tag.php', { suggestion : suggestion },
        function(response) {
            alert(response);    
            if(response == "success") {
                alert('yes');       
            }else {
                alert('no');
            }
        });
    }
});