【发布时间】:2020-01-30 09:21:02
【问题描述】:
我被卡住了,我已经在堆栈上搜索并搜索了这里。
首先,我创建一个 JS obj:
var formData = {};
//LOOP THREW TABLE ROWS
$("tr.element_row").each(function(index, element){
var $this = $(this);
var $inputs = $this.find("input.formData");
formData[index] = {};
//LOOP THREW INPUTS
$.each($inputs, function(n, e){
//this is each input in this tr
if( $(this).attr('name') == 'el' ){
formData[index]['el'] = $(this).val();
} ...
然后我用 JSON stringify 转换它:
var myJSON = JSON.stringify(formData);
//RESULT (console.log(myJSON))
{"0":{"obj":"1234","el":"1","lit":"1","height":"","type":"","length":"","width":"","weight_kg":"","proj":"BC"},"1":{"obj":"1234","el":"2","lit":"1","height":"","type":"","length":"","width":"","weight_kg":"","proj":"BC"},"2":....
然后我用 ajax 将它发送到 PHP:
$.ajax({
url: 'php/add_elementdata.php',
method: 'post',
dataType: "json",
data: myJSON,
然后我做一个var_dump($_POST)
//RESULT
array(1) {
["{"0": {"obj":"1234","el":"1","lit":"1","height":"","type":"","length":"","width":"","weight_kg":"","proj":"BC"},"1":{"obj":"1234","el":"2","lit":"1","height":"","type":"","length":"","width":"","weight_kg":"","proj":"BC"},"2":{"obj":"1234","el":"3","lit":"1","height":"","type":"","length":"","width":"","weight_kg":"","proj":"BC"},"3":{"obj":"1234","el":"4","lit":"1","height":"","type":"","length":"","width":"","weight_kg":"","proj":"BC"},"4":{"obj":"1234","el":"5","lit":"1","height":"","type":"","length":"","width":"","weight_kg":"","proj":"BC"}}"]=> string(0) ""}
那我想创建一个这个..array..string..的多维数组。
$arr = json_decode($_POST);
or
$arr = json_decode($_POST, true);
echo $arr;
但是$arr 返回空。为什么?
【问题讨论】:
-
var_dump($arr);不回显它的标准对象 -
@Rahul 好吧,如果它成功了,它有一个悲伤的“数组”,但现在 echo 什么也没说,而 var_dump 说“null”
-
尝试使用 data: {'myJSON': myJSON} 代替 data: myJSON。并在服务器端通过 print_r($_POST) 打印它
-
$_POST 返回所有帖子变量的数组。尝试
json_decode($_POST[0]);只获取第一个数组。 -
你也应该发送
data: {'myJSON':myJSON}然后用$_POST['myJSON']获取它