如何将动态生成的JSON转换成PHP
我得到了一个JSON值,它是使用JSON.stringify从JavaScript对象转换而来的。我正在尝试使用PHP解析JSON的内容,但我没有任何运气。我肯定我做错了什么 在file1.php中,我得到了如下内容:如何将动态生成的JSON转换成PHP,php,jquery,json,Php,Jquery,Json,我得到了一个JSON值,它是使用JSON.stringify从JavaScript对象转换而来的。我正在尝试使用PHP解析JSON的内容,但我没有任何运气。我肯定我做错了什么 在file1.php中,我得到了如下内容: <html> <head> <script src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'></script> <s
<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>
var irxmlnewsleases=新数组();
irxmlnewsreleases[0]={
“attachmentfileid”:12039
};
var news_release=JSON.stringify(irxmlnewsleases);
$(文档).ready(函数(){
$(“#回应”)。文本(新闻稿);
});
然后我尝试使用file2.php中的json\u decode
从file1.php
读取这些数据
我第一次尝试(错误地)使用file\u get\u contents
,对此进行了一段时间的抨击,但没有成功。我猜问题很明显,JSON值在JavaScript运行之前不存在,因此PHP当然永远无法读取jQuery生成的div内容的值。我不知道的是如何得到那个值
JSON是在file1.php中成功生成的,并且是有效的JSON(我已经通过jsonlint运行了它)
将动态生成的JSON的值输入PHP的更好方法是什么
$(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;
?>
如果需要,可以对某些脚本进行AJAX调用,将数据发送到php。我会发布一个完整的答案,谢谢你的回复。我已经尝试过这种方法,现在,$news\u release
的值为空。我想知道这是否与我的web服务器上的身份验证有关(它被设置为使用Apache指令对目录进行密码保护)。我现在查一下。不,好像不是这样的。打印$\u POST
的值时仍然没有获得值。您应该仍然能够在apache密码保护的访问目录中执行ajax调用。我要说的是,新闻发布版中可能没有javascript中的任何数据。尝试将其设置为显式字符串以排除ajax。在你的函数(data){console.log(data);}
在调试类似情况时非常有用。谢谢回复-非常有用!问题是,我试图通过直接在浏览器中加载文件来回显PHP变量。$.post
函数中回调函数的返回值显示我确实得到了所需的东西。