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
arrayasj
现在我想把这个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——目的是导航到第二个页面,而不仅仅是发送数据