来自localstorage的JSON无法在php

时间:2017-06-13 07:39:52

标签: javascript php json html5 local-storage

我从localstorage中获取值为JSON并尝试解码。 但它不起作用。

这是我从localstorage获取JSON的代码:

$items = "<script> document.write(JSON.parse(JSON.stringify(localStorage.getItem('itemList')))); </script>";

当我在$items上面回复时,结果如下:

{"items":[{"name":"Guitar","id":"1"}]}

像这样对json进行解码:

$decoded = json_decode($items, true);

当我试图回应$decoded没有显示任何内容时。当我var_dump($decoded)显示NULL

感谢任何帮助。谢谢。

2 个答案:

答案 0 :(得分:1)

情况是你无法在一行中组合JS / PHP。

$items = "<script> document.write(JSON.parse(JSON.stringify(localStorage.getItem('itemList')))); </script>";
来自json_decode

$items将直接为您提供您输入的代码(检查json_last_error())...没有任何JS执行(或者您必须使用PhantomJS;但是这不是你的情况。)

必须如何:

  • JS part(sample.js):

    jQuery.post('sample.php', {
        'item': JSON.stringify(localStorage.getItem('itemList'))
    });
    
  • PHP部分(sample.php)

    $items = filter_input(INPUT_POST, 'item');
    $decoded = json_decode($items, true);
    var_dump($decoded);
    

答案 1 :(得分:0)

localStorage仅存储字符串。 JSON.stringify()是错误的,因为它期望JSON对象而不是字符串作为输入。