Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过POST将JSON字符串(数组)从Javascript发送到PHP_Javascript_Php_Json_Http Post - Fatal编程技术网

通过POST将JSON字符串(数组)从Javascript发送到PHP

通过POST将JSON字符串(数组)从Javascript发送到PHP,javascript,php,json,http-post,Javascript,Php,Json,Http Post,几个小时以来,我一直试图找到一个简单的解决方案,向PHP方法发送一个现成的JSON字符串。 Javascript部分: form = document.createElement("form"), node = document.createElement("input"); var element1 = document.createElement("input"); form.method = "POST"; element1.value='[{"id": 110, "teamname":

几个小时以来,我一直试图找到一个简单的解决方案,向PHP方法发送一个现成的JSON字符串。 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为空。
我试过这个:

echo $_POST['teams'];
这让我想到:

[{\“id\“: 110, \“teamname\“: \“first\“}, {\“id\“: 140, \“teamname\“: \“second\“}]
在json_解码中不能用作字符串

主要的问题是,我不知道哪个部分错了…

感谢您的帮助

您可以使用jQuery.ajax发布数据,如下所示:

<script>
jQuery.ajax('./?updateTeamnames', {
    method: 'POST',
    data: {teams: [{id: 110, teamname: "first"}, {id: 140, teamname: "second"}]}
});
</script>

您可以使用jQuery.ajax发布数据,如下所示:

<script>
jQuery.ajax('./?updateTeamnames', {
    method: 'POST',
    data: {teams: [{id: 110, teamname: "first"}, {id: 140, teamname: "second"}]}
});
</script>

为什么不使用jQuery.ajax发送数据呢?如果在json_decode()上添加$u POST['teams'],那么问题就解决了!为什么不能用作弦?我做的。我写了$object=json_decode($_POST['teams']);之后,我用trid访问一个值。没有成功。正如我所悲伤的:我不知道哪一部分是错的。也许只是像$objec[0]->id或$object[0]['id']]这样的访问……为什么不使用jQuery.ajax来发送数据呢?如果在json\u decode()上添加$u POST['teams'],那么问题就解决了!为什么不能用作弦?我做的。我写了$object=json_decode($_POST['teams']);之后,我用trid访问一个值。没有成功。正如我所悲伤的:我不知道哪一部分是错的。可能只是像$objec[0]->id或$objec[0]['id']..这样的访问,然后我如何访问第一个元素的id?您可以使用以下命令访问第一个数组元素的id:
$\u POST['teams'][0]['id']
刚刚发现:ajax不起作用。我从未使用jQueryAjax做过任何事情。我刚刚将代码复制到一个函数中,但它从未发送post消息。你能打开调试控制台并告诉我发生了什么错误吗?你是说Firefox的控制台吗?:JQMIGRATE:Migrate已安装,主线程上的版本1.4.1 jquery migrate.min.js:2:542 Synchronous XMLHttpRequest因其对最终用户体验的有害影响而被弃用。有关lpfulllib.js的更多帮助:7:160不推荐使用getPreventDefault()。改用defaultPrevented。然后我如何访问第一个元素的id?您可以使用以下命令访问第一个数组元素的id:
$\u POST['teams'][0]['id']
刚刚发现:ajax不起作用。我从未使用jQueryAjax做过任何事情。我刚刚将代码复制到一个函数中,但它从未发送post消息。你能打开调试控制台并告诉我发生了什么错误吗?你是说Firefox的控制台吗?:JQMIGRATE:Migrate已安装,主线程上的版本1.4.1 jquery migrate.min.js:2:542 Synchronous XMLHttpRequest因其对最终用户体验的有害影响而被弃用。有关lpfulllib.js的更多帮助:7:160不推荐使用getPreventDefault()。改用defaultPrevented。实习生