【问题标题】:How to make JSON data from JSON.stringify accessible by PHP如何使来自 JSON.stringify 的 JSON 数据可被 PHP 访问
【发布时间】:2013-02-25 10:34:06
【问题描述】:

好的,所以我需要 PHP 来运行一堆由 javascript 动态生成的 URL。到目前为止,我使用 PHP 获取数据的唯一经验是使用网站的 url,该 url 可以通过 API 直接获得 JSON 数据。

因此,在经历了许多痛苦的数小时后,我终于得到了我的数据,我拥有完美 JSON 语法的 URL 和 id(感谢 JSON.stringify()!)。现在,我真的很想将 PHP 指向一个 url 以便开始使用这个 JSON....但是如何?!

我对发布此内容犹豫不决,但如果能稍微推动一下正确的方向,将不胜感激。从我现在看到的情况来看,似乎我可能需要更多地研究以某种方式将这些数据发布到我的服务器?我应该研究 AJAX 吗?

再次,我知道这是一个真正的初学者问题,所以我更多地寻找正确方向的轻微推动,而不是给我需要使用的代码块。

感谢您的帮助!

【问题讨论】:

  • 在对 JSON 进行字符串化后,使用 AJAX 将其发送到 PHP,然后使用 json_decode 将其解码为可以使用的 PHP 数组/对象。
  • 既然你在下面的评论中说你正在使用 jQuery,我已经添加了那个标签。

标签: php jquery ajax json post


【解决方案1】:

您需要做的有两部分:

  1. 将 JSON 发送到服务器。

  2. 将 JSON 解码为 PHP“关联数组”。

第一部分可以通过提交表单或使用 ajax 向服务器发送POST 来完成。 如果您不使用任何库,则可以使用XMLHttpRequest 来执行此操作,但是所有主要的 JavaScript 库都具有方便的功能,以使其更容易。由于将 JSON 字符串发送到服务器的最简单方法是使用标准的多部分表单数据编码,因此请务必使用 encodeURIComponent 对 JSON 字符串进行编码。比如:

var xhr = new XMLHttpRequest(); // Older browers may need some special handling when creating the object
xhr.open("POST", "/path/to/your/page");
xhr.send("jsondata=" + encodeURIComponent(yourJsonString));

既然你说你使用的是jQuery,你可以使用ajax将数据发布到服务器:

$.ajax({
    url:     "/path/to/your/page.php",
    type:    "POST",
    data:    {jsondata: yourJsonString},
    success: function(data) {
        // Handle successful post here, use `data` if your PHP
        // page sends a reply
    },
    error:   function() {
        // Handle error here
    }
});

第二部分(接收 JSON 并对其进行解码)通过接受 POST 变量(上面的jsondata)并通过json_decode 对其进行解码来完成。

【讨论】:

  • 嗯,我需要一些关于 /path/to/your/page 部分的帮助(我正在使用 jQuery,但它仍然是我不太确定我掌握的 URL )。我是否使用 url 指定 PHP 页面?或者我是否指定了一些空白文件,然后将填充 POSTed JSON 数据(类似于我处理的 JSON API)?或者以上都不是?如果是 PHP 页面,除了使用 json_decode 外,如何引用 JSON 数据? json_decode(stringifiedarray) 其中 stringifiedarray 是我的 .js 文件中数组的名称?
  • @Kris:/path/to/your/page 是将接收和处理 JSON 数据的 PHP 页面的路径。由于您使用的是 jQuery,我已经更新了答案。
  • 当我创建我的第一个 php 页面时,我在开始时使用它来引入 JSON 并使其工作:$json = file_get_contents("http://api.link.com/etc"); $elements = json_decode($json); 但我现在不确定如何开始。我是否会使用 $json = file_get_contents(test.php) 和 $elements = json_decode($json) 进行自我引用,其中 test.php 是我使用 ajax 查询发布到的网址?我是 PHP 的一个完全的菜鸟,老实说,我什至不知道如何进行基本检查,比如 JSON 数据是否正确加载,很抱歉向你抛出这些基本问题!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-25
  • 2021-11-30
  • 2021-09-30
  • 2011-04-27
  • 2018-08-07
  • 1970-01-01
相关资源
最近更新 更多