【问题标题】:Ajax post success data: Can you separate results?Ajax 发布成功数据:你能分开结果吗?
【发布时间】:2011-10-15 15:00:49
【问题描述】:

在一个简单的 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)

【问题讨论】:

  • 如果我的回答对您有帮助,请接受它作为正确答案,以便将此问题标记为已解决。如果您仍然有问题,我很乐意提供帮助。谢谢!

标签: php jquery ajax post


【解决方案1】:

您可以将数据作为JSON 编码字符串返回,在关联数组上使用json_encode(),例如: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 将无法正确解析它。

【讨论】:

    【解决方案2】:

    AJAX 调用仅返回一个响应,该响应存储在 data 变量中。但是,您的服务器端代码作为响应返回什么取决于您,您在 Javascript 中如何处理它也取决于您。

    假设您要返回一些 HTML,您想在页面上制作某些元素的内容,您可以做的是以您可以用 Javascript 区分的方式将这两个部分分开。大概是这样的:

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

    那么你只需要在'|parttwo|'上分割data字符串,并使用结果数组的元素来设置不同元素的内容。

    【讨论】:

    • 这不是一个好的做法,而且随着他的应用程序的发展,很难维护和扩展。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-26
    • 2011-11-18
    • 1970-01-01
    相关资源
    最近更新 更多