Caution! - Many of these posts are creepy-old in the Ruby on Rails world (before 1.0!)
The :author => Charles Abbott now blogs here

select_tag :multiple => true

2006-06-01   [ 0 comments ]

Well, a quick post to cover a very simple (but quickly frustrating) topic. I actually ran across this in my day job while trying to access a multiple select set of values in PHP.

I discovered that the multiple select tag had to have [] appended to its name before PHP would recognize it was an array of values. So the select field with name="myoptions" would now have to be called name="myoptions[]" to allow proper access to all the values that are submitted (otherwise you will only get the first value that is submitted).

I was curious after work and decided to check if the same rule applied to Rails. To my surprise it did. Thus a basic multiple select box coded like so:


<%= start_form_tag( {:action => "index"}, {:id => "select"}) %>
Multiple Select
<%= select_tag "myoptions[]", options_for_select(["1","2","3","4"]), :multiple => true %>
<%= submit_tag %>
<%= end_form_tag %>

(Pay special attention to the fact that the name is "myoptions[]")

Produces a form that looks like so:

And since you can Ctrl or Shift click multiple options - you can easily access these options via :params in Rails by something simple such as:


params[:myoptions][0] #the first element - blank if it was not selected, otherwise the value 1
params[:myoptions][1] #the second element - blank if it was not selected, otherwise the value 2
params[:myoptions][2] #the third element - blank... etc.

Well, that was simple, but alas it does not cover everything. If you want to learn more about this - for the lack of my time to research other good sources - check out the rails wiki that has some info. I look forward to posting again soon, thanks for stopping in.

:author => "Charles Abbott"
Converting to Ruby on Rails
 

What?

Who?              Link?



Frameworks Good or Bad?   :date => "2007-10-06"
Where is ForTheCode.com Going?   :date => "2007-09-23"
Refactoring - Vital to Software Development   :date => "2007-09-23"
Mongrel Cluster a quick note - and extra notes   :date => "2007-05-20"
Linux Mongrel and Rails   :date => "2007-05-15"
form_remote_tag revisited   :date => "2007-01-07"
How To: Ubuntu 6.10 Edgy on Rails part 3   :date => "2006-12-30"
How To: Ubuntu 6.10 Edgy on Rails part 2   :date => "2006-12-24"
How To: Ubuntu 6.10 Edgy on Rails   :date => "2006-12-22"
verify ... 5.times do cycle   :date => "2006-09-25"
country_select, country_options_for_select, mail_to   :date => "2006-09-05"
Generate and Send Email in Rails   :date => "2006-08-26"
FDF Model, gsub, and send_data   :date => "2006-08-18"
Active Directory Authentication with acts_as_authenticated   :date => "2006-08-17"
Apache2 proxy with Lighttpd - FastCGI for Rails   :date => "2006-08-08"
reverse! && a simple file Upload Class   :date => "2006-07-29"
send_file - a link to download a file   :date => "2006-07-24"
Environments (production, development, test) and cache_pages   :date => "2006-07-04"
.class .methods .instance_variables   :date => "2006-06-14"
select_tag :multiple => true   :date => "2006-06-01"
FileUtils, action_controller rescues   :date => "2006-05-20"
file_field_tag, File.size, File.path, FileUtils.mv   :date => "2006-05-15"
javascript_include_tag, stylesheet_link_tag   :date => "2006-05-02"
submit_to_remote, form_remote_tag, script.aculo.us   :date => "2006-04-30"
periodically_call_remote, simple_format   :date => "2006-04-26"
observe_field - Ajax!   :date => "2006-04-21"
h method, TextHelper, sanitize(), strip_tags()   :date => "2006-04-15"
Rails API :My API [.count(), link_to, text_area :size]   :date => "2006-04-13"
Rails - HTML Select Tag   :date => "2006-04-05"
Pruning Old Sessions   :date => "2006-03-21"
If Elsif Else, and Searching Too!   :date => "2006-03-17"
SHA1 - A quick update   :date => "2006-03-15"
Initialized! good, Authorized? Great! part 2   :date => "2006-03-11"
Initialized! good, Authorized? Great!   :date => "2006-03-08"
Forms and Routing in RoR   :date => "2006-03-06"
My First RoR Post !   :date => "2006-03-05"