通过post jquery发送数组

Sending array through post jquery

本文关键字:数组 jquery post 通过      更新时间:2023-09-26

我现在这个问题已经被问过了,但是我从今天早上开始就在努力解决这个问题,我不能得到正确的答案。

我有一个全局变量items

我有一个。ajax请求,我需要发送项目数组的内容

项目是这样的

items = new Array();
for (var i = 0; i < 10; i++)
{
   //just populating the list
   var item = [];
   item['some_stuff'] = 'string';
   item['some_int'] = 373;
   items.push(item);
}

//这里是请求

    if (items.length > 0)
    {   
        $.ajax({
                type : "POST",
                url  : "/grad1/adaugaComanda.php",
                data : { "stuff" : items},
                success : function (data){
                    alert(data);
                //  window.location = '/dashboard.php?categ=5&sel=1';
                }
                });
    }

//

请求被执行,但数据没有发送。我尝试使用JSON。对数组进行字符串化,但返回空([[]])。

你知道我做错了什么吗?

   //just populating the list
   var item;

声明了一个名为item的变量,但没有给它赋值,所以它是undefined

   item['some_stuff'] = 'string';

试图给undefinedsome_stuff属性赋值。这是不允许的,所以JS会抛出一个异常,脚本将停止执行。

你根本就没有发出请求,因为你的脚本还没有得到足够的处理。

你需要给item分配一个对象:

var item = {}

你已经编辑了你的问题,所以你的代码现在是:

var item = [];

您仍然需要在这里使用普通的对象 ({}而不是[])。Array对象应该只有数字索引。jQuery在序列化数组时将忽略数组上的命名属性。