通过post jquery发送数组

时间:2014-05-16 12:45:02

标签: javascript jquery

我现在已经问过这个问题,但是我想从今天早上开始尝试解决这个问题,我无法做到这一点。

我有一个名为items

的全局变量

我有一个.ajax请求,我需要发送items数组的内容

项目就像这样

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.stringify,但它返回空([[]])。

任何想法我做错了什么?

1 个答案:

答案 0 :(得分:3)

   //just populating the list
   var item;

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

   item['some_stuff'] = 'string';

这会尝试为some_stuff的{​​{1}}属性赋值。这是不允许的,因此JS将抛出异常并且脚本执行将停止。

您根本没有提出请求,因为您的脚本远远不够。

您需要将对象分配给undefined

item

您已编辑了问题,因此您的代码现在显示为:

var item = {}

您仍然需要在此处使用简单的对象var item = []; 而不是{})。 []个对象应该只有 numeric 索引。在序列化时,jQuery将忽略数组上的命名属性。