一尘不染

如何通过Jquery AJAX发布多维数组?

ajax

我一直在使用Serialize()将复选框形式的数据与Post()传递给可以容纳多个相同类别项目的购物篮。

当我使用“提交”按钮发布它们时,它可以很好地工作,并且可以将多个值传递并显示在一个类别下。

但是,当我使用Jquery serialize()时,每个类别仅显示一个项目,而总共仅显示两个类别。这是一个阵列问题,但我无法解决。

我应该使用替代的JQuery函数来传递多维数组吗?


阅读 358

收藏
2020-07-26

共1个答案

一尘不染

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'
      }
    }
};

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

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
                )

        )

    )

定义数据多维数组后,您的Ajax可能会像

$.ajax({
          type:           'post',
          cache:          false,
          url:            './ajax.php',
          data:           data
      });

如果您的帖子数组可能包含您不知道的字段,则可以使用以下命令轻松地在php文件中访问帖子数组

$data = file_get_contents('php://input');
$data = json_decode($data, true);
2020-07-26