【发布时间】:2017-04-01 08:36:40
【问题描述】:
几个小时以来,我试图找到一个简单的解决方案来将准备好的 JSON 字符串发送到 PHP 方法。 Javascript部分:
form = document.createElement("form"),
node = document.createElement("input");
var element1 = document.createElement("input");
form.method = "POST";
element1.value='[{"id": 110, "teamname": "first"}, {"id": 140, "teamname": "second"}]';
element1.name="teams";
form.appendChild(element1);
form.appendChild(node.cloneNode());
form.action = "?updateTeamnames";
form.style.display = "none";
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
PHP: 如果我用 (echo file_get_contents('php://input');) 回显原始数据。我明白了:
teams=%5B%7B%22id%22%3A+110%2C+%22teamname%22%3A+%22first%22%7D%2C+%7B%22id%22%3A+140%2C+%22teamname%22%3A+%22second%22%7D%5D
如何访问 JSON 字符串团队? 我试过这个:
$data = json_decode(file_get_contents('php://input'), true);
echo $data;
没有成功。我认为 $data 是 NULL。
我试过这个:
echo $_POST['teams'];
这导致我这样做:
[{\“id\“: 110, \“teamname\“: \“first\“}, {\“id\“: 140, \“teamname\“: \“second\“}]
不能作为json_decode中的字符串使用。
主要问题是,我不知道哪一部分是错的...
感谢您的帮助
【问题讨论】:
-
为什么不用jQuery.ajax来发送数据?
-
如果你把 $_POST['teams'] 放在 json_decode() 上,那么它就解决了这个问题!为什么不能用作字符串?
-
我做到了。我写了 $object = json_decode($_POST['teams']);之后我尝试访问一个值。没有成功。我很伤心:我不知道哪一部分是错的。也许只是像 $objec[0]->id 或 $object[0]['id'] 这样的访问...
标签: javascript php json http-post