【问题标题】:Jquery response from post来自帖子的 Jquery 响应
【发布时间】:2012-09-21 19:28:04
【问题描述】:

我遇到的问题....我在 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 总是处理这个好像响应是“是”!?我错过了什么明显的东西吗?

【问题讨论】:

  • 也许您的回复中出现了一些空白。试试alert("'"+ data +"'"); 或使用if ($.trim(data) == 'no')
  • 您确定它完全是“否”而不是带有一些空格或其他东西的“否”吗?

标签: jquery response jquery-post


【解决方案1】:

省去很多麻烦,并使用 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 断点来帮助调试。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 那是个hack,他应该知道里面到底有什么。
    • 如果您愿意,可以称其为 hack,但它会使应用程序更加健壮。我看不出有什么问题。像关闭 ?> 标记后的额外空格这样简单的问题将导致问题。该解决方案仍然适用于该场景。
    • 是的,更正它是换行符是和换行符否的响应......不知道为什么,但无论如何 - 这已修复!谢谢!!!!
    • 而且更容易出错,因为它不准确。它不应该发生,当您发送某些东西时,您应该得到您发送的确切内容,或者您​​发送错误。
    • 这是纯脚本,有 2 个解决方案是和否,所以我看不出有问题吗?什么不是“正确的解决方案”?
    猜你喜欢
    • 2011-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多