接收通过 POST 从 Javascript 发送到 PHP 的对象
Posted
技术标签:
【中文标题】接收通过 POST 从 Javascript 发送到 PHP 的对象【英文标题】:Receive object sent through POST from Javascript to PHP 【发布时间】:2020-04-29 17:52:15 【问题描述】:在 javascript(使用 JQuery)中,我通过以下方式发送一个对象:
var myobj = ;
myobj['test'] = 1;
myobj['child'] = ;
myobj['child']['test2'] = 2;
var myvar = 123;
$.ajax(
type: "POST",
url: url,
data: myobj,
success: success,
dataType: dataType
);
现在在 php 中,我通过 $_POST 变量接收对象。我想将此对象作为多维数组访问。我将如何引用该对象/变量及其内容?
如果我想连同 myobject 一起发送 (POST) 另一个变量 (myvar) 怎么办?如何发送两者,以及如何在 PHP 中访问它们?
【问题讨论】:
【参考方案1】:您可以在发送到 PHP 处理程序之前对对象进行 jsonify。
你的javascript可以是这样的:
var myobj = ;
myobj['test'] = 1;
myobj['child'] = ;
myobj['child']['test2'] = 2;
var myvar = 123;
$.ajax(
type: "POST",
url: url,
data: myobj: JSON.stringify(myobj), myvar: myvar,
success: success,
dataType: "json"
);
您可以像这样在 PHP 中将 data
作为多维数组访问:
$data = json_decode($_POST, true);
// $data['myobj'] contains the object
// $data['myvar'] contains the var
【讨论】:
$data[myobj] 现在是 PHP 中的关联数组了吗?以上是关于接收通过 POST 从 Javascript 发送到 PHP 的对象的主要内容,如果未能解决你的问题,请参考以下文章
通过 POST (ajax) 发送 JSON 数据并从 Controller (MVC) 接收 json 响应
无法接收 Vue 通过 axios 发送到 PHP 的 Post 数据