【问题标题】:how to control dynamic rows coming from a form in a controller如何控制来自控制器中表单的动态行
【发布时间】:2013-02-19 05:52:50
【问题描述】:

我有一个发送动态行数和列数的表单。这是jsFiddle 上的demo 表格的外观。

我有红色、黄色和绿色的列,并且可能有与这些颜色阴影相关联的动态行数。每行都有一个文本框和复选框。

如何记录用户在我的控制器 save() 操作中选择的内容?

例如下面的表单截图

我收到以下回复给我的控制器:

[red:on, green:[on, on], shade:[light, dark, , ], action:save]

问题

现在的问题是,即使我拥有用户输入的所有阴影,我也无法连接回哪些行已检查了不同颜色列的复选框。

我也有兴趣了解如何在 Grails/Rails 或其他框架中执行此操作。

【问题讨论】:

  • 可能你没有在复选框上设置“id”。对于此类问题,应使用行号生成 ID。例如 row:1:red、row:1:green 等。但如果我必须实现这一点,我会使用 JSON 来发送数据。
  • 我同意@droggo 我也会使用 JSON。如果您使用 {light:[{red:on]、{yellow:off}、{green:on}]、dark:[{red:on]、{yellow:off}、{绿色:开}] ...
  • 您的意思是您会使用 JSON 提交表单并将数据发送回控制器吗?
  • 没有。我会使用 javascript 构造 JSON 对象。并对其他控制器方法执行标准 JSON POST 请求。例如使用 jquery: $.ajax({type:'POST', contentType:'application/json', data:JSON, url:'/AppName/controller/action'})

标签: ruby-on-rails-3 grails grails-2.0 grails-controller


【解决方案1】:

所以你必须增加你的名字:

<input type="checkbox" name="red.1" />
<input type="checkbox" name="red.2" />
<input type="checkbox" name="red.3" />

然后你可以像这样循环它们:

params.list("red").each {
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-19
    • 2013-08-11
    • 2020-10-03
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    • 1970-01-01
    • 2015-09-16
    相关资源
    最近更新 更多