【发布时间】:2014-10-01 06:02:02
【问题描述】:
我做了一些研究,甚至有一本书解释了 Ajax 对 php 的调用以及向浏览器和服务器发送数据以及从浏览器和服务器发送数据。我发现这与我需要的非常接近,因为我使用的是本地存储How can I pass saved localStorage web data to a php script?,这个链接看起来很连贯,但我不确定在 PHP 端该怎么做How to pass data from Javascript to PHP and vice versa?,
虽然我有一个更大的问题,我在本地存储中的数据量非常大,有几个不同的数组存储在那里并且是 JSON 编码的,当我得到数组时我使用 JSON.parse 并设置存储中的数组我将其字符串化。怎么能这样做来发送那种数据呢? localStorage 中的数据也不是全部都是数组,需要保存的 localStorage 中有数百个变量。
编辑:
这是我的代码,因为我注意到它是必需的。 我正在尝试从本地存储中获取所有数据以发送到服务器以保存在数据库中。
function postData(){
var storage = JSON.stringify(localStorage);
var xhr;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
else {
throw new Error("Ajax is not supported by this browser");
}
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
if (xhr.status === 200 && xhr.status < 300) {
document.getElementById('div1').innerHTML = xhr.responseText;
}
}
};
xhr.open('POST', 'Membership.php');
xhr.setRequestHeader("Content-Type: text/json", "application/x-www-form-urlencoded");
xhr.send("data=" + storage);
}
在我拥有的 PHP 方面
if ($_POST){
$data = json_decode($_POST['data']);
echo "The data" .$data;
}
我不知道这是否正确,我找不到任何关于如何传递所有本地存储数据的信息,这基本上是我之前试图询问的内容,但显然未能传达这一点。
【问题讨论】:
-
将数据(部分或大量)从 Javascript 发送到 PHP 的好方法是在 JSON 编码对象中。为什么不直接将整个 localStorage 转储到 JSON 对象中,使用 AJAX 将其发送到 PHP,然后使用 PHP 到
json_decode()对象?在回答您关于如何在 PHP 中访问它的问题时,您可以使用$_GET['var_name']或$_POST[],具体取决于您使用的 HTTP 方法。除此之外,您还需要提供一些您尝试过的示例,以便我们进一步提供帮助。 -
我认为我的帖子会被否决,我是初学者,似乎堆栈溢出不是一个适合初学者的环境,我尽力提出问题。不过感谢您的回复。
-
如果我在 javascript 中将参数设置为 var json = localStorage.getItem(sessionKey); params = "data=" + JSON.stringify(json) + "";` 我什至不知道这是否正确,我会尝试但我认为这就是你所说的对吗? (这是在 JS 方面)params 是我使用 Ajax 发送的 .send 方法
标签: javascript php ajax json