在一个简单的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)
答案 0 :(得分:4)
您可以在关联数组上使用JSON将数据作为json_encode()编码字符串返回,例如:echo json_encode(array("partone" => "data1", "parttwo" => "data2"));
这样您就可以data.partone
和data.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,并使用结果数组的元素来设置不同元素的内容。