This can be done in straight Javascript.

You need two arrays (or a nice JSON oobject), a MAIN and a SUB.
MAIN contains name, value pairs. SUB contains name, value pairs AND
the member index from MAIN.
Call a function of the onchange event on the select containing the
MAIN list.

In this function first clear the SUB select box
(document.forms['form1'].SUB.length=0) and loop through the SUB array.
Where the main index value = the selected value from the main
selection, add that item to the SUB select like so:

 
document.forms['form1'].SUB.options[document.forms['form1'].SUB.length]
= new Option(name,val);

There might be an easier way to do this in Rails, but this will work.

On Dec 31 2007, 11:23 am, Crispy <[EMAIL PROTECTED]> wrote:
> Suppose you have two related drop downs (selects) that you want to
> populate from a
> database. Assume one is Category, and the other is Subcategory.
> When a Category is selected, you want the contents of the
> Subcategory drop down to be populated with only those Subcategories
> that are related to the Category selection.
>
> Another example might be a role based access framework
> and the first drop down is the controllers available for a given
> right.  Once the user selects a controller, you want the next drop
> down populated with only the actions available for that controller.
>
> Being a Rails Newbie, I wasn't sure I could tackle this on my own, but
> it would be very useful.
> After reading about script.aculo.us, it sounded like that might be in
> the right direction.
>
> Any suggestions on how to do this?  Keep in mind, i'm really new at
> this....
>
> Thank you!
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Spinoffs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-spinoffs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to