将localStorage数据发送到PHP

时间:2014-08-07 20:51:21

标签: javascript php ajax json

我做了一些研究,甚至有一本书解释了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;

}

我不知道这是否正确,我找不到任何关于如何传递所有本地存储数据的内容,这基本上是我之前想要提出的问题,但显然没有传达出来。

1 个答案:

答案 0 :(得分:1)

基本上你需要做的是:

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

    • 发送Content-type: text/json ti向您发送JSON数据的服务发送提示(可选,但建议使用)
  5. 在PHP端处理数据(即json_decode有效负载并使用您自己的逻辑处理它以满足您的需求。

  6. 注意:

    你没有提供任何代码,所以我只是跳过编码部分(我不能猜你的代码,交配)

    修改

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