Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让PHP访问JSON.stringify中的JSON数据_Php_Jquery_Ajax_Json_Post - Fatal编程技术网

如何让PHP访问JSON.stringify中的JSON数据

如何让PHP访问JSON.stringify中的JSON数据,php,jquery,ajax,json,post,Php,Jquery,Ajax,Json,Post,好的,所以我需要PHP来运行一组由javascript动态生成的URL。到目前为止,我使用PHP获取数据的唯一经验是使用一个网站的url,该url通过API直接提供JSON数据 因此,在经历了许多痛苦的时间后,我终于得到了我的数据,我有了完美JSON语法的URL和id(感谢JSON.stringify()!)。现在,我真的想把PHP指向一个url,以便开始使用这个JSON…但是怎么做 我很犹豫是否发布这篇文章,但如果能朝着正确的方向推动一下,我将不胜感激。从我现在看到的情况来看,似乎我需要更多地

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

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

我很犹豫是否发布这篇文章,但如果能朝着正确的方向推动一下,我将不胜感激。从我现在看到的情况来看,似乎我需要更多地考虑如何将这些数据发布到我的服务器上?我应该研究AJAX吗

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


谢谢你的帮助

您需要做的有两部分:

  • 将JSON发送到服务器

  • 将JSON解码为PHP“关联数组”

  • 第一部分可以通过提交表单或使用ajax向服务器发送
    POST
    来完成。如果您不使用任何库,那么您可以使用它,但是所有主要的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({
        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后通过.

    对其进行解码来完成的,您可以使用AJAX将其发送到PHP,在PHP中使用json_decode将其解码为可以使用的PHP数组/对象。既然您在下面的评论中说您正在使用jQuery,我已经添加了该标记。嗯,我需要对/path/to/your/page部分提供一些帮助(我正在使用jQuery,但它仍然是我不太确定掌握的URL)。我是否使用url指定PHP页面?或者我是在指定一个空白文件,然后用发布的JSON数据填充该文件(类似于我处理的JSON API)?还是以上都没有?如果是PHP页面,除了使用JSON_decode外,我如何引用JSON数据?json_decode(stringifiedarray),其中stringifiedarray是我的.js文件中数组的名称?@Kris:the
    /path/to/your/page
    是将接收和处理json数据的PHP页面的路径。因为您使用的是jQuery,所以我已经更新了答案。当我创建第一个php页面时,我在开始时使用它来引入JSON并使其工作:
    $JSON=file\u get\u contents(“http://api.link.com/etc");  $elements=json_decode($json)但我不确定现在该如何开始。我是否会使用$json=file\u get\u contents(test.php)和$elements=json\u decode($json)进行自我引用,其中test.php是我通过ajax查询发布到的url?我是一个完全不懂PHP的人,老实说,我甚至不知道如何做一些基本的检查,比如JSON数据是否正确加载,所以很抱歉向您提出这些基本的问题!