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.partone
和data.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,并使用结果数组的元素来设置不同元素的内容。