gpt4 book ai didi

javascript - json_decode 通过 $_POST 返回 NULL

转载 作者:行者123 更新时间:2023-11-28 01:14:59 25 4
gpt4 key购买 nike

我在使用 json_decode 解决问题时遇到问题。我收到了通过 $_POST 发送的有效 json。

这是正在传递的 JSON 对象,即 list 变量:

[{"item_name":"Screw Driver","item_desc":"asdasd","item_type":"weapon"},
{"item_name":"Brown Shoes","item_desc":"asdasd","item_type":"footwear"}]

这是 html javascript 代码。

<form action = "<?php echo $_SERVER['PHP_SELF'];?>" method = "post" accept-charset="UTF-8">
<input type = "hidden" name = "inv" id = "inv"/>
<input type = "submit" id = "btn_save" onclick = "saveInventory()" value = "Save"/>
</form>

<script type = "text/javascript">
function saveInventory(){
var inv = document.getElementById("inv");
inv.value = inventory;
}
</script>

这是从隐藏的输入类型中获取 json 的 php 脚本

<?php
if(isset($_POST['inv'])){
$inv = $_POST['inv'];
var_dump(json_decode($inv,true)); // returns NULL
}
?>

我在网上阅读了大量 json_decode 问题,但其中大多数都有关于 json_decode 返回 null 的不同问题。有人可能会发现这里出了什么问题吗?谢谢。

最佳答案

您的 inventory 变量似乎是 JavaScript 对象数组,而不是 JSON 字符串。因此,您需要将其转换为 JSON 以将其存储在 HTML 输入值中:

function saveInventory(){
var inv = document.getElementById("inv");
inv.value = JSON.stringify(inventory); // convert to JSON string
}

关于javascript - json_decode 通过 $_POST 返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23954382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com