3

我有问题....我在 php 中有一个监听器脚本,它可以做到这一点:

  if ($count != 1) {echo 'no';} else { echo "yes";}

所以它会根据任务是否成功而回显“是”或“否”,并且在我的页面上我有这个:

   jConfirm('Are you sure you want to delete this publisher?', 'Delete publisher', function (r) {
    if (r) $.post('includes/publishers/delete-publisher.php?publisherid=' + publisherid, 
    function(data) {
            if (data == 'no') {
            $.jGrowl('Error - PUBLISHER WAS ALREDY DELETED !');
            alert("Data Loaded: " + data);
            } else {
            $(element).parents('tr').remove();
            $.jGrowl('Publisher deleted');       
            alert("Data Loaded: " + data);
            }
        });
});

问题是尽管 delete-publisher.php 回显“否”(我看到它在警报框中回显) - JQuery 总是处理这个好像响应是“是”!?我错过了一些明显的东西吗?

4

2 回答 2

2

为自己省去很多麻烦,并使用 JSON 将响应发送回您的 javascript。做这样的事情(未经测试):

PHP端:

header('Content-type: application/json');
if ($count != 1) {
    echo json_encode(array('success'=>false));
} else { 
    echo json_encode(array('success'=>true))
}

JS端:

jConfirm('Are you sure you want to delete this publisher?', 'Delete publisher', function (r) {
if (r) $.post('includes/publishers/delete-publisher.php?publisherid=' + publisherid, 
function(data) {
        if (data.success == false) {
            $.jGrowl('Error - PUBLISHER WAS ALREDY DELETED !');
            alert("Data Loaded: " + data);
        } else {
            $(element).parents('tr').remove();
            $.jGrowl('Publisher deleted');       
            alert("Data Loaded: " + data);
        }
    }, 'json');

});

这样,您也可以将错误消息传递回 JS。

您还应该习惯使用类似 Firebug for Firefox 之类的东西,这样您就可以查看网络流量的详细信息,并发布参数、响应标头等,设置 JS 断点以帮助调试。

于 2012-09-21T19:40:41.263 回答
1

您的回复中可能有一些空格。尝试改用这个:

if ($.trim(data) == 'no') {
于 2012-09-21T19:33:07.223 回答