jQuery AJAX - 接收多个数据

时间:2011-03-03 15:18:19

标签: jquery ajax

我使用Wordpress,PHP,jQuery和AJAX。

我可以通过AJAX调用从PHP获取数据,如下所示:

$.ajax({
    type: "POST",
    url: "<?php echo get_bloginfo('url'); ?>/?addmod_ajax=1",
    data: "action=load&type=part",
    success: function(data){
        alert(data);
    }
});

当我收到数据时,我也想知道它是怎么回事。 “数据”包含HTML,我也想要“成功”或“未找到”等错误代码。

如何以最佳方式解决?

WordPress的

因为我使用Wordpress,我需要调用一个AJAX触发器(在url中)。如果我能保持完整,那就太好了。

2 个答案:

答案 0 :(得分:1)

$.ajax({
    type: "POST",
    url: "<?php echo get_bloginfo('url'); ?>/?addmod_ajax=1",
    data: "action=load&type=part",
    success: function(data){
        alert(data);
    },
    failure: function(){
        alert('failed');
    }
});

你可以添加一个失败处理程序来查看ajax请求是否失败,但除此之外,如果想要一个不同的返回值,你将不得不改变你在后端调用的函数的结果,或者创建一个新的类似函数,而不是只返回html,返回一个json编码的数组,第一个元素被找到或找不到,第二个元素是html。

编辑:附加评论以完成答案并格式化代码。

在你回应'你的结果'的地方,你可以回声

json_encode(array('success'=>true,'html'=>$yourData)); 

并在你的ajax调用中添加

 dataType:'json'

然后您可以在成功处理程序中访问成功和html值。

答案 1 :(得分:0)

我通常只返回一个数组或字典,其中一个值被指定为状态。

$.get(url,data,function(data) {
    if (data[0]=='parseError') { //could also be data.state
         $("#formError").html("You have entered an invalid value.").show();
    }
    else if (data[0]=='permissionDenied') {
        $("#formError").html("You do not have permission to edit this.").show();
    }
    else {
        $("#formSuccess").html("Your changes have been saved");
    }
});

这些示例可能不是最好的(权限被拒绝,解析错误可以在前端处理)。这个概念仍然很可靠。