【问题标题】:Sending localStorage data to PHP将 localStorage 数据发送到 PHP
【发布时间】: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


【解决方案1】:

基本上你需要做的是:

  1. 从 localStorage 中检索所有数据
  2. 字符串化所有内容(现在您拥有所有数据的 JSON 表示)
  3. 使用 jQuery 或 other_framework_of_choice 准备 AJAX 请求,并将有效负载设置为字符串化数据并发送:

    • 发送Content-type: text/json ti 向服务发送提示您正在发送 JSON 数据(可选,但推荐)
  4. 在 PHP 端处理数据(即json_decodepayload 并使用您自己的逻辑处理它以满足您的需求。

注意:

你没有提供任何代码,所以我会跳过编码部分(我猜不出你的代码,伙计)

编辑

可以参考Send data from localStorage via AJAX to PHP and save it in an HTML file 只需跳过保存部分并替换为您想要的处理

【讨论】:

  • 3, 4 和 5 的前半部分都是一回事。
  • 想一想,你是对的。将对其进行编辑以反映实际步骤(感谢您指出)
  • 现在你错过了 PHP 部分 :)
  • 大声笑让我再试一次:p。现在怎么样了
  • 所以你的意思是 JSON.stringify(localStorage); ?
猜你喜欢
  • 2014-01-19
  • 1970-01-01
  • 1970-01-01
  • 2019-04-11
  • 2013-01-31
  • 2019-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多