jquery ajax后混合数组对象将空数组发送到php
Posted
技术标签:
【中文标题】jquery ajax后混合数组对象将空数组发送到php【英文标题】:jquery ajax post mix array objects send empty array to php 【发布时间】:2021-03-14 14:23:59 【问题描述】:我向 php 发送了一个数组/对象组合,但 POST 是空的
console.log(数据)
data:
ABONNR: 900000064
UMO301NR: 173088
change:
assistant: [phone: Array(0)]
patient: [phone: …, social: "single"]
patient-medical: "Hoge bloeddruk"
patient-name: "Burger Maria SENSO2ME"
remove:
assistant: […, phone: Array(0)]
patient: [phone: Array(0)]
patient-medical: "Evenwichtsproblemen"
jQuery
var json = data:changed
console.log(json)
$.ajax(
url: Settings.base_url + '/home/update',
data: json,
type: 'post',
success: function (response)
console.log(response)
);
php print_r($_POST)
Array ( )
你有什么想法吗? 谢谢!
【问题讨论】:
var jsonData = data:data
和 data: jsonData,
使用这个..
记录的data
有一个密钥change
,而在你的AJAX中你尝试发送data:changed
。我假设您希望发送data: data.change
。
console.log(json) 给你什么?
【参考方案1】:
$_POST[] 不会抓取JSON
。您应该改用 file_get_contents()。
// Takes raw data from the request
$json = file_get_contents('php://input');
// Converts it into a PHP object
$data = json_decode($json);
类似的答案:How to get body of a POST in php?
【讨论】:
var_dump($data),返回 NULL console.log(json) 给你什么? 见下面的console.log【参考方案2】:ABONNR: 900000064,
UMO301NR: 173088,
change:
assistant:
phone: []
,
patient:
phone:
[current: "22222222222", prev: ""],
social: "single",
patient-medical: "Dementie",
patient-name: "Burger Maria SENSO2ME"
,
remove:
assistant:
0: name: "WZC Gitschotelhof Loopwacht+",
phone: []
,
patient:
phone: [],
patient-medical: "Kan niet alleen recht bij val"
【讨论】:
以上是关于jquery ajax后混合数组对象将空数组发送到php的主要内容,如果未能解决你的问题,请参考以下文章
Ajax 将带有两个数组的 JSON 对象发送到一个 servlet 并在没有 jQuery 的情况下在 java servlet 中解析