Jquery通过ajax发布数组

Posted

技术标签:

【中文标题】Jquery通过ajax发布数组【英文标题】:Jquery post array via ajax 【发布时间】:2011-02-10 21:12:26 【问题描述】:

我有一个数组(用于复选框),我需要在 ajax 帖子中与常规表单一起传递,但似乎无法让它工作:

new_data = [a,b,c,d,e];

somedata_assoc = JQuery.param('choices[]': new_data);

    $.ajax(
        type: "POST",
     url: contract_qurl,
     data: $(div).find("form").serialize()+"&"+somedata_assoc,
     context: $(this),
     success: function(data)  $("#results_table").html(data); 
    );

【问题讨论】:

您是否遇到错误?您是否尝试过使用诸如萤火虫之类的东西来查看 ajax 帖子发生了什么?如果您包含更多代码可能会有所帮助,因为上述代码不会在没有错误的情况下运行。 【参考方案1】:

经过研究,唯一对我有用的解决方案是:

url='url/to/page'
choices = [1,2,3,4,5,6]
    $.post(url, 'choices[]': choices , function(data)
          console.log(data);
    ,'html');

另外,使用带括号的“选择”,这样您就可以在服务器中检索单个变量,否则它将是每个数组元素的帖子。 这对我有用。你可以看到另一个帖子here at ***。

我希望这将能够在将来对某人有所帮助。

【讨论】:

这对我有用.. 但有一个错字。您在选择后缺少大括号, 修复了缺少花括号的问题【参考方案2】:

我在这一行收到一个 javascript 错误

new_data = [a,b,c,d,e];

我不得不把它改成这个

new_data = ['a','b','c','d','e']; 

你在这行中将 jQuery 中的 J 大写

somedata_assoc = JQuery.param('choices[]': new_data);

应该是这个(或只是 $ 简写)

somedata_assoc = jQuery.param('choices': new_data);

另外,我认为您不需要括号,在大多数情况下,它们会使检索服务器上的数据变得更加困难

【讨论】:

非常感谢您查看此内容...我没有意识到“J”必须是小写的!另外,您对括号是正确的。现在一切正常!

以上是关于Jquery通过ajax发布数组的主要内容,如果未能解决你的问题,请参考以下文章

通过 jQuery Ajax 发送 Json 数组

通过 jQuery AJAX 将字符串数组传递给 C# WebMethod

将 PHP $_POST 数组传递给 javascript/jQuery 以通过 ajax 发送回 PHP

如何使用 jQuery 通过 Ajax 发送复选框数组的值?

通过 for 循环和 php 数组进行多次插入(通过 jQuery AJAX 接收)

将c#集合序列化为视图中的jquery数组以通过ajax方法传递给控制器