Javascript 如何在php中将一个页面的json数组传递到另一个页面?

Javascript 如何在php中将一个页面的json数组传递到另一个页面?,javascript,php,json,Javascript,Php,Json,我有一个php页面p1.php在JavaScript函数中,我得到了一些jsonarrayasj现在我想把这个j应用到另一个php页面p2.php 我已经试过了 window.location.href="p2.php?data="+j 然后在p2.php中 我使用$\u get['data']获得结果 但是经过研究,我发现这种格式不适合海量数据。 所以 我留下了将其传递到url的想法,如果您的j是object,那么您可以使用jquery发布 例如: $.post("p2.php", { d

我有一个
php
页面
p1.php
JavaScript
函数中,我得到了一些
json
arrayas
j
现在我想把这个
j
应用到另一个
php
页面
p2.php

我已经试过了

window.location.href="p2.php?data="+j 
然后在
p2.php中
我使用
$\u get['data']
获得结果
但是经过研究,我发现这种格式不适合海量数据。 所以
我留下了将其传递到
url

的想法,如果您的j是object,那么您可以使用jquery发布

例如:

$.post("p2.php", { datavar : j},function(data){
})
在p2.php中

print_r( $_POST["datavar"]);
echo $_POST["datavar"]["var2"];

这取决于您可以移动的许多数据,但通过url发送纯数据总是很难看的。 但在您的示例中,只缺少将json(对象)转换为字符串:

window.location.href="p2.php?data="+JSON.stringify(j);
如果您可以选择正确的方式,请将信息存储在会话中:

然后,p1.php如下所示:

<?php
session_start();
$_SESSION['json'] = isset($_POST['json']) ? $_POST['json'] : null;
// other php stuffs
?>
<!-- other html stuffs -->
<script>
var json = { your: 'json' };
(function(){
  var xhr = new XMLHttpRequest();
  var data = encodeURIComponent(JSON.stringify(json));
  xhr.open('post', 'p1.php');
  xhr.send('json='+data);
})();
</script>

var json={your:'json'};
(功能(){
var xhr=new XMLHttpRequest();
var data=encodeURIComponent(JSON.stringify(JSON));
open('post','p1.php');
send('json='+数据);
})();

这些代码通过AJAX将信息(json)发送到p1。php

您可以使用POST请求。如果您是从JavaScript触发的,那么您必须模拟提交表单。我可以从表单发送JSON数据吗?您可以更进一步,将JSON保存到数据库中,并在下一页访问它,然后从该页底部的数据库中删除它。是的,您可以用JSON格式发送,也可以用表单url编码格式(提交表单数据的正常格式)发送。只要服务器知道会发生什么,这并不重要。post请求之后,它是否会根据OP想要重定向到新页面的原始代码重定向到p2.php,而不仅仅是使用Ajax。你也不能假设他们正在使用(或愿意使用)jQuery@chenyu您可以在post函数(data){window.location=url}之后手动重定向,但是为什么要在一个HTTP请求执行此任务时发出两个HTTP请求呢?这简直是浪费。这里不需要Ajax与另一个答案相同,这里也不需要Ajax——目的是导航到第二个页面,而不仅仅是发送数据