Hi,

Try the javascript in the attached file. Works brilliant for me:

The function you need to use is moveOptions(srcID, targetID) where srcID and
targetID are the IDs of your both select boxes.

I hope that helps.

Cheers,
Daniel

On 23/8/05 20:22, "Laurie Harper" <[EMAIL PROTECTED]> wrote (with possible
deletions):

> Unless I'm missing something, that is for populating combo boxes based on
> selections in other combo boxes, e.g. for populating the State/Province
> combo box based on Country selection, etc. That's not quite the same.
> 
> L.
> 
> 
> C.F. Scheidecker Antunes wrote:
> 
>> Hi Laurie,
>> 
>> I am trying to do the same and I've done some research. One of the
>> things I've found is the one bellow.
>> 
>> I would appreciate, if you find something diferent, to email it back to
>> the list as well so that it would same time for me
>> and other developers as well.
>> 
>> Thanks,
>> 
>> C.F.
>> 
>> Maybe something like this would work for you:
>> 
>> http://javascript.js-x.com/examples/example.php?title=Multiple%20dynamic%20co
>> mbo%20boxes%20Builder
>> 
>> 
>> <html>
>> <head>
>> <!--
>> This file retrieved from the Javascript Archives
>> http://javascript.js-x.com
>> 1000s of free ready to use scripts, tutorials, forums.
>> Author: Mirko Elviro - http://www.js-x.com/
>> -->
>> <script language="JavaScript">
>> /*
>> *** Multiple dynamic combo boxes
>> *** by Mirko Elviro, 9 Mar 2005
>> ***
>> ***Please do not remove this comment
>> */
>> 
>> // This script supports an unlimited number of linked combo boxed
>> // Their id must be "combo_0", "combo_1", "combo_2" etc.
>> // Here you have to put the data that will fill the combo boxes
>> // ie. data_2_1 will be the first option in the second combo box
>> // when the first combo box has the second option selected
>> 
>> 
>> // first combo box
>> data_1 = new Option("1", "$");
>> data_2 = new Option("2", "$$");
>> 
>> // second combo box
>> data_1_1 = new Option("11", "-");
>> data_1_2 = new Option("12", "-");
>> data_2_1 = new Option("21", "--");
>> data_2_2 = new Option("22", "--");
>> data_2_3 = new Option("23", "--");
>> data_2_4 = new Option("24", "--");
>> data_2_5 = new Option("25", "--");
>> 
>> // third combo box
>> data_1_1_1 = new Option("111", "*");
>> data_1_1_2 = new Option("112", "*");
>> data_1_1_3 = new Option("113", "*");
>> data_1_2_1 = new Option("121", "*");
>> data_1_2_2 = new Option("122", "*");
>> data_1_2_3 = new Option("123", "*");
>> data_1_2_4 = new Option("124", "*");
>> data_2_1_1 = new Option("211", "**");
>> data_2_1_2 = new Option("212", "**");
>> data_2_2_1 = new Option("221", "**");
>> data_2_2_2 = new Option("222", "**");
>> data_2_3_1 = new Option("231", "***");
>> data_2_3_2 = new Option("232", "***");
>> 
>> // fourth combo box
>> data_2_2_1_1 = new Option("2211","%")
>> data_2_2_1_2 = new Option("2212","%%")
>> 
>> // other parameters
>> displaywhenempty="-empty-"
>> valuewhenempty=-1
>> 
>> displaywhennotempty="-select-"
>> valuewhennotempty=0
>> 
>> 
>> function change(currentbox)
>> {
>> var numb = currentbox.id.split("_");
>> var currentbox = numb[1];
>> var i=parseInt(currentbox)+1;
>> // I empty all combo boxes following the current one
>> var _t=eval("typeof(document.getElementById('combo_"+i+"'))!='undefined'");
>> while (_t && document.getElementById("combo_"+i)!=null)
>> {
>> var son = document.getElementById("combo_"+i);
>> // I empty all options except the first (it isn't allowed)
>> for (m=son.options.length-1;m>0;m--)
>> son.options[m]=null;
>> // I reset the first option
>> son.options[0]=new Option(displaywhenempty,valuewhenempty);
>> i=i+1;
>> }
>> 
>> // now I create the string with the "base" name ("stringa"), ie. "data_1_0"
>> // to which I'll add _0,_1,_2,_3 etc to obtain the name of the combo box
>> to fill
>> var stringa='data';
>> i=0;
>> _t=eval("typeof(document.getElementById('combo_"+i+"'))!='undefined'");
>> while (_t && document.getElementById("combo_"+i)!=null)
>> {
>> eval("stringa=stringa+'_'+document.getElementById(\"combo_"+i+"\").selectedIn
>> dex"); 
>> 
>> if (i==currentbox)
>> break;
>> i=i+1;
>> }
>> 
>> // filling the "son" combo (if exists)
>> var following=parseInt(currentbox)+1;
>> _t=eval("typeof(document.getElementById('combo_"+following+"'))!='undefined'"
>> ); 
>> 
>> if (_t && document.getElementById("combo_"+following)!=null)
>> {
>> son=document.getElementById("combo_"+following);
>> stringa=stringa+"_";
>> i=0;
>> while ((eval("typeof("+stringa+i+")!='undefined'")) || (i==0))
>> {
>> // if there are no options, I empty the first option of the "son" combo
>> // otherwise I put "-select-" in it
>> if ((i==0) && eval("typeof("+stringa+"0)=='undefined'"))
>> if (eval("typeof("+stringa+"1)=='undefined'"))
>> eval("son.options[0]=new Option(displaywhenempty,valuewhenempty)");
>> else
>> eval("son.options[0]=new Option(displaywhennotempty,valuewhennotempty)");
>> else
>> eval("son.options["+i+"]=new
>> Option("+stringa+i+".text,"+stringa+i+".value)")
>> i++;
>> }
>> //son.focus();
>> i=1;
>> combostatus='';
>> cstatus=stringa.split("_");
>> while (cstatus[i]!=null)
>> {
>> combostatus=combostatus+cstatus[i];
>> i=i+1;
>> }
>> return combostatus;
>> }
>> }
>> </script>
>> </head>
>> <body>
>> <form>
>> <select name="combo0" id="combo_0" onChange="change(this);"
>> style="width:200px;">
>> <option value="value1">-select-</option>
>> <option value="value2">1</option>
>> <option value="value3">2</option>
>> </select>
>> <BR><BR>
>> <select name="combo1" id="combo_1" onChange="change(this)"
>> style="width:200px;">
>> <option value="value1"> </option>
>> </select>
>> <BR><BR>
>> <select name="combo2" id="combo_2" onChange="change(this);"
>> style="width:200px;">
>> <option value="value1"> </option>
>> </select>
>> <BR><BR>
>> <select name="combo3" id="combo_3" onChange="change(this);"
>> style="width:200px;">
>> <option value="value1"> </option>
>> </select>
>> </form>
>> <BR><center><a title='Javascript' href='http://javascript.js-x.com'
>> <http://javascript.js-x.com%27>>javascript.js-x.com
>> <http://javascript.js-x.com></a></center>
>> </body>
>> </html>
>> 
>> 
>> Laurie Harper wrote:
>> 
>>> Does anybody have, or know of, a good HTML form 'widget' for managing
>>> value lists, something like
>>> 
>>>    Available            Selected
>>>   +---------+          +--------+
>>>   | item A  |    >>|   |        |
>>>   | item B  |    >>    |        |
>>>   | item C  |    <<    |        |
>>>   | ...     |   |<<    |        |
>>> 
>>> (you know the kind of thing ;-)
>>> 
>>> I'd like something that is used as similarly to the simple <html: form
>>> controls as possible, and preferably something with some nice
>>> client-side behaviour built in.
>>> 
>>> It's not rocket science, shouldn't be hard to build, but I thought I
>>> might as well try to avoid reinventing the wheel ;-) [and yes, I know
>>> this kind of thing is where JSF comes into its own, but JSF isn't an
>>> option on this project...]
>>> 
>>> Thanks for any pointers,
>>> 
>>> L.
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to