当前位置: 首页 > 面试题库 >

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

阳长恨
2023-03-14
问题内容

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

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

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

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


问题答案:

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);


 类似资料:
  • 问题内容: 我有一个php表单,该表单具有已知的列数(例如,顶部直径,底部直径,织物,颜色,数量),但是行数未知,因为用户可以根据需要添加行。 我发现了如何采用每个字段(列)并将其放入各自的数组中。 因此,我最终在HTML中得到的是: 我现在想做的是将所有行和列都放入多维数组,然后将其内容通过电子邮件发送给客户端(最好在格式良好的表中)。我还无法真正理解如何将所有这些输入和选择组合到一个不错的数组

  • 问题内容: 当我尝试通过Ajax(jQuery)将数组发送到Django时 JavaScript代码: 我尝试读取数组: 蟒蛇: 我只得到最后一个数组值: 我究竟做错了什么? 问题答案: 您正在寻找的 https://docs.djangoproject.com/zh-CN/2.0/ref/request- response/#django.http.QueryDict.getlist

  • 问题内容: 我无法通过CURL将表单数据发布到位于不同主机上的接收PHP脚本。 我得到一个错误 这是我要发布的数组: 这是发生错误的行: 第三个参数 必须 是一个数组,因为在通过同一数组发送文件时,我需要将标头设置为该数组,因此无法将数组转换为查询字符串或使用。 另外,我无法访问接收主机上的代码,因此无法序列化和反序列化数组。 我假设 名称 键的值是数组是导致此错误的原因,我还假设它不支持多维数组

  • 大多数成熟的项目都平行的维护多个发布线。例如,1.0.0发布后,该发布线会继续微小发布1.0.1,1.0.2等等,直到项目明确的决定终止这条线。请注意,仅仅因为发布了1.1.0不足以终止1.0.x线。例如,一些用户会制定某类政策,永远不升级到较新的次要或主要版本的第一个发布—他们希望其他人能将bug试验出来,例如1.1.0,那么就等待1.1.1。这不一定是自私(请牢记,他们也放弃了bug修正和新特

  • 问题内容: 有没有一种快速的方法来获取在多维数组中找到键值对的所有子数组?我不能说阵列的深度。 简单示例数组: 当我搜索key = name和value =“ cat 1”时,该函数应返回: 我猜想函数必须是递归的才能深入到最深层次。 问题答案: 码: 输出: 如果效率很重要,则可以编写效率代码,以便所有递归调用将其结果存储在同一临时数组中,而不是将数组合并在一起,如下所示: 这里的关键是通过引用

  • 问题内容: 我必须在PHP中实现一个 setter ,它允许我指定数组(目标)的键或子键,并将名称作为点分隔键值传递。 给出以下代码: 从价值我想达到的值 5 的。 现在,给定变量值和不同的值(深度不同)。 如何设置by引用的元素的值? 对于 getter, 我编写了以下代码: 写一个 setter 比较困难,因为我成功地从到达了正确的元素,但是我无法在原始数组中设置值,而且我也不知道如何一次全部