如何将动态生成的JSON引入PHP

时间:2012-01-16 01:49:58

标签: php jquery json

我有一个使用JSON.stringify从JavaScript对象转换的JSON值。我正在尝试使用PHP解析JSON的内容,但我没有运气。我确定我做的是一些非常基本的错误。

在file1.php中,我有类似的东西:

<html>
<head>
    <script src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'></script>
    <script src='/json2.js'></script>
    <script>
        var irxmlnewsreleases = new Array();
        irxmlnewsreleases[0]={
            "attachmentfileid":12039
         };
         var news_release = JSON.stringify(irxmlnewsreleases);
         $(document).ready(function () {
             $("#response").text(news_release);  
         });
    </script>
 </head>
 <body>
    <div id="response"></div>
 </body>
 </html>

然后我尝试使用file2.php中的file1.phpjson_decode读取此数据。

我首先(错误地)使用file_get_contents进行了尝试,并且一直在抨击这一点并没有成功。我想问题显然是JSON值在运行JavaScript之前不存在,所以PHP当然永远不能读取jQuery生成的div内容的值。我不知道的是如何获得这个价值。

JSON正在file1.php中成功生成,并且是有效的JSON(我通过jsonlint运行它)。

将动态生成的JSON的值传递给PHP的更好方法是什么?

1 个答案:

答案 0 :(得分:3)

     $(document).ready(function () {
         $("#response").text(news_release);  
         $.post('file2.php', { php_post_var1: news_release }, function (data) { 
           //do something with the PHP script output here if you want
         });
     });

然后在PHP脚本file2.php中执行类似

的操作
<?php
$news_release = $_POST['php_post_var1'];
echo 'PHP received ' . $news_release;
?>