论坛首页 编程语言技术论坛

check_box使用疑问

浏览 10427 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-11-16  
qiezi 写道
jack 写道
qiezi 写道

忘了一个最好的办法了:

<%= check_box_tag "my_data[]", mydata.id %>

发送过去的肯定是你最喜欢的 


你这样的代码没法子用,如果用在一个循环里面输出多个check_box,最后post的时候,只有一个数据提交。


你真的试过了吗?还是凭自己的直觉?


试过了,所以才间隔这么久才回复的。就是为了试了才确定的。你这样的写法,最后生成的 input的name值是完全相同的,最终提交的时候,就会只能提交某一个checkbox的现象,这个在我开始的帖子里面就提到了。
0 请登录后投票
   发表时间:2006-11-16  
你大概是漏掉了什么,这里有个测试代码:
class TestController < ApplicationController
  def test
    if request.method == :get
      render :inline => <<-EOS
        <form action="/test/test" method="post">
          <% 5.times do |index| -%>
            <%= check_box_tag "foo[]", index %>item <%= index %><br />
          <% end -%>
          <%= submit_tag %>
        </form>
      EOS
    else
      render :text => params[:foo].to_json
    end
  end
end

先访问/test/test,出现一个表单,提交后将看到你选择的结果。
提交的参数如下:
引用

Processing TestController#test (for 127.0.0.1 at 2006-11-16 23:55:01) [POST]
  Session ID: 6ec9a9641360509d53dc5d8f7fc1d70b
  Parameters: {"commit"=>"Save changes", "action"=>"test", "foo"=>["0", "1"], "controller"=>"test"}
Completed in 0.01600 (62 reqs/sec) | Rendering: 0.00000 (0%) | 200 OK [http://localhost/test/test]

如果你是做批量更新记录,直接把上面的foo取出来用in操作就可以了。
0 请登录后投票
   发表时间:2006-11-17  
哦 我有些点忘记提了,我以为不重要的,这些check_box_tag我是放在form_remote_tag中的,可能这个有影响,而不是form_tag
0 请登录后投票
   发表时间:2006-11-17  
jack 写道
哦 我有些点忘记提了,我以为不重要的,这些check_box_tag我是放在form_remote_tag中的,可能这个有影响,而不是form_tag

form_remote_tag也是可以的。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics