通过PHP将多维数组发布到服务器
可能重复:通过PHP将多维数组发布到服务器,php,javascript,jquery,ajax,post,Php,Javascript,Jquery,Ajax,Post,可能重复: 我想使用jQuery$.post()将一些数据从客户端发送到PHP服务器。当它到达服务器时,我希望$\u POST['myList']等于以下任何一项(最简单的)。在$.post()中,我应该将数据对象设置为什么 array ( 0=>array('id'=>123,'d1'=>'aaa','d2'=>'xxx'), 1=>array('id'=>234,'d1'=>'bbb','d2'=>'yyy'), 2=>ar
我想使用jQuery
$.post()
将一些数据从客户端发送到PHP服务器。当它到达服务器时,我希望$\u POST['myList']
等于以下任何一项(最简单的)。在$.post()中,我应该将数据对象设置为什么
array (
0=>array('id'=>123,'d1'=>'aaa','d2'=>'xxx'),
1=>array('id'=>234,'d1'=>'bbb','d2'=>'yyy'),
2=>array('id'=>345,'d1'=>'ccc','d2'=>'zzz')
)
array (
123=>array('d1'=>'aaa','d2'=>'xxx'),
234=>array('d1'=>'bbb','d2'=>'yyy'),
345=>array('d1'=>'ccc','d2'=>'zzz')
)
可以将它们作为三个数组发送,每个属性对应一个数组
myList_id[]=123&myList_d1[]=aaa&myList_d2[]=xxx&myList_id[]=234&...
在PHP中,您将以$\u POST['myList\u id']
、$\u POST['myList\u d1']
和$\u POST['myList\u d2']
的形式接收它们,您可以将它们组合到所需的数组中
或者,如果包含索引,则可以更进一步:
myList[0][id]=123&myList[0][d1]=aaa&myList[0][d2]=xxx&myList[1][id]=234&...
这将直接为您提供数组:$\u POST['myList']
您可以将它们作为三个数组发送,每个属性一个
myList_id[]=123&myList_d1[]=aaa&myList_d2[]=xxx&myList_id[]=234&...
在PHP中,您将以$\u POST['myList\u id']
、$\u POST['myList\u d1']
和$\u POST['myList\u d2']
的形式接收它们,您可以将它们组合到所需的数组中
或者,如果包含索引,则可以更进一步:
myList[0][id]=123&myList[0][d1]=aaa&myList[0][d2]=xxx&myList[1][id]=234&...
这将直接为您提供数组:$\u POST['myList']
编辑:第一个看起来像一个简单的对象数组,但jQuery似乎需要将其设置为键控对象:
var send_this = {
0: { id: 123, d1: 'aaa', d2: 'xxx' },
1: { id: 234, d1: 'bbb', d2: 'yyy' },
2: { id: 345, d1: 'ccc', d2: 'zzz' }
};
对于包含对象的对象,“第二次外观”仅具有不同的外观关键点:
var send_this = {
'123': { d1: 'aaa', d2: 'xxx' },
'234': { d1: 'bbb', d2: 'yyy' },
'345': { d1: 'ccc', d2: 'zzz' }
};
jQuery 1.7.1中经过测试的实现:
$.post( '/herp.php', send_this, function(d) {
console.info( d );
});
PHP程序在$\u POST中完全按照您的要求接收数据。编辑:第一个程序看起来像一个简单的对象数组,但jQuery似乎需要将其设置为键控对象:
var send_this = {
0: { id: 123, d1: 'aaa', d2: 'xxx' },
1: { id: 234, d1: 'bbb', d2: 'yyy' },
2: { id: 345, d1: 'ccc', d2: 'zzz' }
};
对于包含对象的对象,“第二次外观”仅具有不同的外观关键点:
var send_this = {
'123': { d1: 'aaa', d2: 'xxx' },
'234': { d1: 'bbb', d2: 'yyy' },
'345': { d1: 'ccc', d2: 'zzz' }
};
jQuery 1.7.1中经过测试的实现:
$.post( '/herp.php', send_this, function(d) {
console.info( d );
});
PHP程序在$\u POST中完全按照您的要求接收数据。您应该使用JSON strong发送数据:下面是一个示例:
var pushData = {
id: "blalal",
id: "blalal",
id: "blalal",
};
JSON.stringify(pushData)
然后你就可以把它贴出来或者其他什么
$.ajax({
url : "http://blalallalalal="+JSON.stringify(pushData),
type : "POST",
dataType: "text",
success: function (data) {
},
error: function() {
// alert("fsdf");
}
});
那么从php的角度来看,只需使用
$data = get_object_vars(json_decode($dataJSON));
完成您应该使用JSON strong发送数据:以下是一个示例:
var pushData = {
id: "blalal",
id: "blalal",
id: "blalal",
};
JSON.stringify(pushData)
然后你就可以把它贴出来或者其他什么
$.ajax({
url : "http://blalallalalal="+JSON.stringify(pushData),
type : "POST",
dataType: "text",
success: function (data) {
},
error: function() {
// alert("fsdf");
}
});
那么从php的角度来看,只需使用
$data = get_object_vars(json_decode($dataJSON));
完成如果您使用jQuerys$.post
或$.get
,则无需编码/解码,只需传递一个JS对象作为数据参数
var data = {
"myList" : {
0 : {"id":1,...etc},
1 : {"id":2,...etc},
2 : {"id":3,...etc},
etc...
}
};
// post or get
$.post(
url2post,
data,
callbackFunc
);
如果您使用jQuerys$.post
或$.get
,则不需要编码/解码,只需传递一个JS对象作为数据参数
var data = {
"myList" : {
0 : {"id":1,...etc},
1 : {"id":2,...etc},
2 : {"id":3,...etc},
etc...
}
};
// post or get
$.post(
url2post,
data,
callbackFunc
);
选择1
var data = [
{ id: 123, d1: 'aaa', d2: 'xxx' },
{ id: 234, d1: 'bbb', d2: 'yyy' },
{ id: 345, d1: 'ccc', d2: 'zzz' }
];
选择2
var data = {
'123': { d1: 'aaa', d2: 'xxx' },
'234': { d1: 'bbb', d2: 'yyy' },
'345': { d1: 'ccc', d2: 'zzz' }
};
然后
选择1
var data = [
{ id: 123, d1: 'aaa', d2: 'xxx' },
{ id: 234, d1: 'bbb', d2: 'yyy' },
{ id: 345, d1: 'ccc', d2: 'zzz' }
];
选择2
var data = {
'123': { d1: 'aaa', d2: 'xxx' },
'234': { d1: 'bbb', d2: 'yyy' },
'345': { d1: 'ccc', d2: 'zzz' }
};
然后
您可以使用json格式将数据从javascript发送到服务器,并在服务器端对其进行解码。javascript中没有类似的多维数组,您需要发送其他内容并在服务器端将其转换为您喜欢的任何内容。您可以使用json格式将数据从javascript发送到服务器,在服务器端对其进行解码。javascript中没有这样的多维数组,您需要发送其他内容并在服务器端将其转换为您喜欢的任何内容。在发布问题之前,我尝试了类似的内容,但它只是作为文本传递,PHP无法重建它。我的错误。您的解决方案非常有效!在发布问题之前,我尝试过类似的方法,但它只是作为文本传递,PHP无法重建它。我的错。您的解决方案非常有效!这看起来与pp19dd和穆萨的答案非常相似。我以前曾尝试过类似的方法,但没有效果。可能是操作员错误。让我重新测试。这看起来与pp19dd和Musa的答案非常相似。我以前曾尝试过类似的方法,但没有效果。可能是操作员错误。让我重新测试一下。和pp19dd一样好的解决方案。不知道哪一个是第一个。更重要的是@user1032531,这是一个只使用代码的答案,不会对未来的研究人员起到很大的教育/授权作用。与pp19dd相同的伟大解决方案。不知道哪一个是第一个。更重要的是@user1032531,这是一个只有代码的答案,对未来的研究人员来说不会有太大的帮助。