Ajax发布成功数据:你能分开结果吗?

时间:2011-10-15 15:00:49

标签: php jquery ajax post

在一个简单的ajax帖子示例中:

$.post('ajax/test.php', function(data) {
$('.result').html(data);
});

有没有办法将结果数据分开来做两件不同的事情?即:

$.post('ajax/test.php', function(data) {
$('.result').html(data.partone);
$('.other-result').html(data.parttwo);
});

我在页面加载时运行ajax请求,并且我试图在一个POST中获取我需要的所有内容。如果可以,那么如何在PHP端定义不同的数据部分? (即:data.partone和data.parttwo)

2 个答案:

答案 0 :(得分:4)

您可以在关联数组上使用JSON将数据作为json_encode()编码字符串返回,例如:echo json_encode(array("partone" => "data1", "parttwo" => "data2"));

这样您就可以data.partonedata.parttwo访问它。另外值得一提的是,您应该将dataType中的$.post()定义为JSON。为此,您需要向其添加另一个参数,指定要返回的数据类型 - JSON。

例如:$.post('ajax/test.php', function(data) { ... }, "JSON");

另外值得一提的是,你应该只从ajax脚本返回这个json_encode()输出,否则jQuery将无法正确解析它。

答案 1 :(得分:0)

AJAX调用仅返回一个响应,该响应存储在data变量中。但是,您的服务器端代码返回的内容取决于您的响应,以及您在Javascript中使用它做什么也取决于您。

假设您要返回一些要在页面上制作某些元素内容的HTML,那么您可以做的就是将这两个部分分开,以便您可以用Javascript区分。也许有些事情如下:

/* part one here */|parttwo|/* part two here */

然后你只需要在'| parttwo |'上拆分data string,并使用结果数组的元素来设置不同元素的内容。