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 将字符串数组传递给 C# WebMethod
将 PHP $_POST 数组传递给 javascript/jQuery 以通过 ajax 发送回 PHP
如何使用 jQuery 通过 Ajax 发送复选框数组的值?