【问题标题】:Jquery post array via ajaxJquery通过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 帖子发生了什么?如果您包含更多代码可能会有所帮助,因为上述代码不会在没有错误的情况下运行。

标签: jquery ajax forms checkbox


【解决方案1】:

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

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

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

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

【讨论】:

  • 这对我有用.. 但有一个错字。您在选择后缺少大括号,
  • 修复了缺少花括号的问题
【解决方案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”必须是小写的!另外,您对括号是正确的。现在一切正常!
猜你喜欢
  • 2011-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-09
相关资源
最近更新 更多