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:datadata: 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的主要内容,如果未能解决你的问题,请参考以下文章

jQuery Ajax 不将数组作为数据对象发送

Ajax 将带有两个数组的 JSON 对象发送到一个 servlet 并在没有 jQuery 的情况下在 java servlet 中解析

通过 jQuery Ajax 发送 Json 数组

将空参数从 Ajax 发送到控制器

如何使用 $.ajax(jQuery 或 Zepto)发布对象数组

asp.net mvc 接收jquery ajax发送的数组对象