17. maj 2004 - 14:18Der er
10 kommentarer og 1 løsning
dynamisk select
Jeg leder efter et script som kan opfylde følgende:
- Data kommer fra et træ i databasen. Det vil sige at der er data på tre niveauer, og de skal kunne organiseres korrekt i select boxe. - Dynamisk fylde 3 select boxe afhængig af foregående valg. - Man skal både kunne definere 'value' og 'text' værdierne for hver option. - Rydde valg i efterfølgende boxe, ved nyt valg. - være cross browser funktionel (ie, netscape, firefox, opera)
Jeg har et script i forvejen, men kan ikke få det til at virke i andre browsere end ie, og mangler derfor et nyt!!
Ja, jeg har fundet demo fra roenving, men jeg kan ikke se at den kan håndterer alt det jeg skal bruge? Det er ikke udtræk fra db der er er mit problem, det har jeg impl. i min nuværende kode, men det er dynamisk fyldning via javascript...
Som nævnt skal jeg blot kunne fylde 3 javascript boxe dynamisk. Jeg har eksisterende kode som kører i ie men jeg kan ikke finde ud af at gøre det cross browser funtionel her kommer den:
function selectChange(control, controlToPopulate, ItemArray, GroupArray) { var myEle ; var x ; // Empty the second drop down box of any choices for (var q=controlToPopulate.options.length;q>=0;q--) controlToPopulate.options[q]=null; if (control.name == "firstChoice") { // Empty the third drop down box of any choices for (var q=control.form.thirdChoice.options.length;q>=0;q--) control.form.thirdChoice.options[q] = null; } // ADD Default Choice - in case there are no values myEle = document.createElement("option") ; myEle.value = 0 ; myEle.text = "[SELECT]" ; controlToPopulate.add(myEle); // Now loop through the array of individual items // Any containing the same child id are added to // the second dropdown box for ( x = 0; x < ItemArray.length; x++ ) { if(control.name == "firstChoice") { if ( arrItemsLocID1[x] == control.value ) { myEle = document.createElement("option") ; myEle.value = GroupArray[x]; myEle.text = ItemArray[x] ; controlToPopulate.add(myEle) ; } }
har fundet ud af sagen... (næsten) controlToPopulate.add(MyEle) virker kun i ie men i mozilla hedder det appendChild(MyEle).
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.