如何使用Jquery AJAX发布多维数组?

use*_*603 9 arrays ajax jquery post

我一直在使用Serialize()通过Post()传递复选框表单数据,用于可以容纳同一类别的多个项目的购物篮.

当我使用提交按钮发布它时,它可以正常工作,并传递多个值并显示在一个类别下.

但是当我使用Jquery serialize()时,它每个类别只显示一个项目,总共只显示两个类别.这是一个数组问题,但我无法解决.

是否有一个替代JQuery函数我应该用来传递一个多维数组?

Bra*_*ith 16

Jquery将直接采用多维数组,无需序列化.

var data = {
  foo:  123,
  bar:  456,
    rows: [
      {
        column1 : 'hello',
        column2 : 'hola',
        column3 : 'bonjour',.
      },
      {
        column1 : 'goodbye',
        column2 : 'hasta luego',
        column3 : 'au revoir',
      },
    ],
    test1:{
      test2: {
        test3:  'baz'
      }
    }
};
Run Code Online (Sandbox Code Playgroud)

PHP文件中的_Post数据如下所示

Array
   (
    [foo] => 123
    [bar] => 456
    [rows] => Array
        (
            [0] => Array
                (
                    [column1] => hello
                    [column2] => hola
                    [column3] => bonjour
                )

            [1] => Array
                (
                    [column1] => goodbye
                    [column2] => hasta luego
                    [column3] => au revoir
                )

        )

    [test1] => Array
        (
            [test2] => Array
                (
                    [test3] => baz
                )

        )

    )
Run Code Online (Sandbox Code Playgroud)

一旦定义了数据多维数组,您的Ajax就可以如此简单

$.ajax({
          type:           'post',
          cache:          false,
          url:            './ajax.php',
          data:           data
      });
Run Code Online (Sandbox Code Playgroud)

如果你的帖子数组可能包含你不知道的字段,你可以轻松地在你的php文件中访问你的Post数组

$data = file_get_contents('php://input');
$data = json_decode($data, true);
Run Code Online (Sandbox Code Playgroud)

  • 嗯,你的例子没有使用多维数组。多维数组是数组的数组(例如 - [ [ "apples", "oranges" ] , [ "bananas", "pears" ] ] )。但是,您使用的是一维对象数组。 (3认同)