【问题标题】:Simple? Post Jquery Array to rails controller#action简单的?将 Jquery 数组发布到 rails 控制器#action
【发布时间】:2011-10-07 14:28:52
【问题描述】:

似乎无法弄清楚如何将查询(json)数组发布到 rails 控制器#action

我喜欢

var myarray = []; ( with values )

我想发布到的控制器操作:

def process
end

我到处都能找到关于如何获取 JSON 的答案 -> Jquery 但我需要反过来。任何人都知道如何做到这一点?不能这么难吗?!

【问题讨论】:

  • 你想在后台post(屏幕闪烁,重新加载页面)还是AJAX Post

标签: jquery ruby-on-rails json post


【解决方案1】:

可能有几种方法可以做到这一点,但这里有一种。使用一些像这样的 JS 发布到你的控制器:

var target = "your-action-url";
var myarray = [1,2,3,etc];
$.ajax({
    type: 'get',
    url: target + '?order='+myarray.join(',') ,
    dataType: 'script'
});

然后,在您的控制器中:

data = params[:order].split(',')

现在你有了一个与你在 javascript 中的匹配的数组。

【讨论】:

  • 大数组很容易遇到问题,因为 URL 有字符限制
  • 我只发布整数并且不超过 20,这样会解决问题,稍后再研究(如果有人建议修复它,那就更受欢迎了)。有一些 500 服务器错误导致我忘记创建视图文件!现在一切似乎都很好,谢谢!
  • 您总是可以使用 POST 而不是 GET 来处理 URL 大小问题。十多年来,我个人实际上还没有遇到过 URL 字符限制问题,尽管值得留意。
【解决方案2】:

jQuery 文档有关于发布的信息:jQuery.post()

这样的事情有帮助吗? $.post('path-to-process-action', {myarray: myarray})

【讨论】:

  • 这很好,但您不应仅将数组作为数据参数传递,而应使用类似 $.post('path-to-process-action', {myarray: myarray}) 的映射
  • 编辑了使用地图版本的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-29
  • 2014-05-24
  • 1970-01-01
  • 1970-01-01
  • 2014-12-13
  • 2012-11-26
  • 1970-01-01
相关资源
最近更新 更多