【问题标题】:How does a PHP script send an JSON Ajax response to Dojo's xhrGet?PHP 脚本如何向 Dojo 的 xhrGet 发送 JSON Ajax 响应?
【发布时间】:2011-09-26 22:52:47
【问题描述】:

我刚开始使用 dojo,我正在通过 xhrGet 在 dojo 中使用 Ajax。

我知道您在 PHP 中“回显”的内容是作为 Ajax 结果返回的内容,但是这如何与 JSON 一起使用?

PHP 脚本是否回显随后从 xhrGet 调用的函数直接访问的 javascript 代码?

我正在尝试让 PHP 脚本从数据库中检索数据,填充三个数组,并在我的 javascript 代码中使用它们,所有这些都使用 xhrGet。

谢谢!

【问题讨论】:

    标签: php ajax json dojo


    【解决方案1】:

    在回显之前用 PHP 设置标题:

    <?php
        header('Content-type: application/json');
        echo '{"myJsonKey":"myJsonVal"}';
    

    对于您的具体情况,您可以这样做:

    <?php
        $my_records_array = fetch_records($some_criteria);
        $my_records_json  = json_encode($my_records_array);
    
        header('Content-type: application/json'); 
        echo $my_records_json;
    

    【讨论】:

    • 啊,我明白了。因此,如果我有三个语句都使用 json_encode 对三个不同的数组进行编码,我将能够使用 response.whateverArray 通过 xhrGet 中的加载调用访问这些语句?另外,如果我使用 xhrGet 的“内容”传递一些东西,我是使用 $_GET 数组还是 $_REQUEST 数组?我见过两个都用过。谢谢!
    • 是的,并且始终使用$_GET$_REQUEST,因为$_REQUEST$_GET$_POST 等的组合。
    【解决方案2】:

    大多数 JavaScript 库都围绕 AJAX 请求包装回调。我不确定 Dojo,但是 jQuery 在发送 URL 时会在 URL 中添加一个回调参数。

    然后,当服务器响应时,它会触发回调,该回调调用 your 回调来处理结果。

    至于实际的服务器端内容,服务器通常只打印 JSON 编码的字符串并传递一个额外的标头,让浏览器知道它是什么类型的内容。

    <?php
    $rows = $db->fetch($sql);
    
    header('Content-type: application/json');
    print json_encode($rows);
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-19
      • 2012-04-24
      • 1970-01-01
      • 1970-01-01
      • 2012-04-01
      • 2021-10-11
      • 1970-01-01
      • 2015-04-06
      相关资源
      最近更新 更多