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

在一个简单的ajaxpost示例中:

$.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)

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

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

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

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

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

假设您要返回一些要在页面上创建某些元素内容的HTML,那么您可以做的就是将这两个部分分开,以便与Javascript区分开来。 也许是这样的:

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

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