jquery ajax返回true但没有显示正确的消息?

时间:2011-06-09 02:55:55

标签: jquery

我有以下代码

$(document).ready(function(){
// class exists
if($('.delete').length) {
        // add click handler
    $('.delete').click(function(){
        // ask for confirmation
        var result = confirm('Are you sure you want to delete this?');
        var vid     = $(this).attr('id'); 
        var row = $(this).parents('tr');  
        // do ajax request
        if(result) {
            $.ajax({
                type:"POST",
                url:"delete_joke.php",
                data:{id:vid,garbage:'FG9g543hfh'},
                dataType: "json",
                success:function(response){

                    // hide table row on success
                    if(response == "true") {
                        row.fadeOut();
                       $('#errors').show();
                        $('#errors').html( '<div class="message green"> Successfully deleted!<img src="http://puppetweb.ca/play/views/admin/gfx/icon-close.gif" alt="Close this item" /> </div>' ).show();

                    }else{
                       $('#errors').show();
                        $('#errors').html( '<div class="message red"> Error deleting. <img src="http://puppetweb.ca/play/views/admin/gfx/icon-close.gif" alt="Close this item" /> </div>' ).show();

                    }
                }
            });
        }
    return false;
    });
}
});

直到我想要显示成功的部分,我的php脚本在成功时打印“true”,在错误时打印“false”,如果我发出警告(响应),则显示单词true。但它显示错误删除成功和错误删除错误?

任何帮助?

2 个答案:

答案 0 :(得分:0)

如果您确定它返回true / false,请尝试将if(response == "true")替换为if(response)

要检查数据响应的类型,请尝试alert(typeof response)并查看其显示的内容。

编辑:

由于您将数据类型称为JSON,请确保返回有效响应并将内容类型设置为响应中的json。

如果json返回{"status":true},那么您应该使用if(response.status)

答案 1 :(得分:0)

这里的问题是范围。当成功函数运行时,行不等于任何东西。最简单的解决方案之一是传回id,确切地说,将其用作选择器并隐藏。

如果我这样做,我会从json切换到scrip并返回执行的JavaScript。这似乎比真或假更有用。