Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过PHP将多维数组发布到服务器_Php_Javascript_Jquery_Ajax_Post - Fatal编程技术网

通过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,这是一个只有代码的答案,对未来的研究人员来说不会有太大的帮助。