Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion GroupsGeneralPHPASPPerlColdFusionFlashHTML, CSS, ScriptsBrowsers

Webmaster Forum / HTML, CSS, Scripts / JavaScript / January 2006



Tip: Looking for answers? Try searching our database.

Select an Array, to Display

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Tyrone Slothrop - 31 Jan 2006 16:34 GMT
It is a familiar story.  It works in Firefox, but not in IE.

I want to dynamically populate a select box with an array of values
based upon the value selected from another select.  The arrays are
defined when the page is loaded.

Assuming that the arrays are name a, b. and c:

<select name="someArray">
    <option onclick="selArr(a);" value="a">A</option>
    <option onclick="selArr(b);" value="b">B</option>
    <option onclick="selArr(c);" value="c">C</option>
</select>

function selArr(whichArr) {
var optStr;
var cnt = whichArr.length;
for (var i=0; i<cnt; i++) {
 optStr += '<option value="'+whichArr[i].k+'
'+whichArr[i].v+'">'+whichArr[i].k+' '+whichArr[i].v+'</option>\n';
 }
document.getElementById('sel2').innerHTML = optStr;
}

I have run into this before where IE ignores any calls to a function
from an option value.  However, the problem is if I call the function
from the select tag:
<select name="someArray" onchange="selArr[this.value);">
this.value is treated not as the defined array but as a var value, as
if is enclosed by quotes.

Any ideas how to get around this?

TIA!
mick white - 31 Jan 2006 18:38 GMT
> It is a familiar story.  It works in Firefox, but not in IE.
>
[quoted text clipped - 14 lines]
>  var cnt = whichArr.length;
>  for (var i=0; i<cnt; i++) {

function selArr(whichArr){
var cnt = whichArr.length,
sel=document.forms[0].sel2.options,sel.length=0,i;
for(i=0;i<cnt;i++){
sel[i]=new Option(whichArr[i],whichArr[i])
}
}

>select name="someArray" onchge="selArr[this.value);">

> this.value is treated not as the defined array but as a var value, as
> if is enclosed by quotes.
>
> Any ideas how to get around this?

onchange="selArr(window[this[this.selectedindex].value]);
// provided the arrays are global in scope

[...]
Mick
Tyrone Slothrop - 31 Jan 2006 21:42 GMT
>> It is a familiar story.  It works in Firefox, but not in IE.
>>
[quoted text clipped - 35 lines]
>[...]
>Mick

Thanks Mick!

I figured out how to do a lot of this on my own, though the onChange
part looks like what I need to make it completely dynamic.

I have been coding in PHP, C and Perl for years but JavaScript still
makes me nuts at times.  ;-)

Thanks again!
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2009 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.