php/dynamic form problem

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View
Hi, I have a page with 2 drop-down menus. The task is, when you select
1 menu, your selection then changes the options available in the
other. This data happens to be drawn from a mysql database, so I
wouldn't think that it could be done purely in Javascript, but rather
a combination of PHP generating some JS code. Thing is, I don't even
see how to change a set of menu options with JavaScript, only names
and values of individual fields.

Any hints and links to tutorials where the menu-changing part is
explained would be appreciated.



Re: php/dynamic form problem wrote:

Quoted text here. Click to load it

I think you just run a tiny script from the <option> onmouseclick which
reloads the form, then when the form reloads, php sees the option value
has been set & formats the second option list.

Re: php/dynamic form problem

Paul Furman wrote:

Quoted text here. Click to load it

Its generally refered to as a cascaded select. The easiest way to acheive
the result is to generate javascript directly from your PHP code, or use an
ajax function to populate the second select. Regardless you'd be better
asking about this on a Javascript list.

Having said that, I much prefer the the old Mozilla behaviour of having
nested menus defined by optgroups but all borwsers now just use that as a
series of headers in what is still a single list. To implement the same
behaviour (i.e. all options in a single widget but nested) check out PHP
layers menu.



Re: php/dynamic form problem


on 03/17/2007 09:07 AM said the following:
Quoted text here. Click to load it

This is a frequently asked need, for which there are ready to use
components for that purpose.

I use this forms generation class that comes with a plug-in that can do
exactly what you ask: link two or more selected inputs in such way when
the value of one changes, the options of the following are switched.

There is a variant of that plug-in that picks new groups of options from
a MySQL database using AJAX requests to avoid page reloading.

The class and the plug-ins may be found here:

Here you can see an example of the plug-in in action:

Here you can watch a tutorial video about this plug-in:


Manuel Lemos

Metastorage - Data object relational mapping layer generator

PHP Classes - Free ready to use OOP components written in PHP

Site Timeline