» »

Malo težav z javascript array-i oz. neznanja...

Malo težav z javascript array-i oz. neznanja...

HellBird ::

Pozdrav!

Imam dva arraya:
strani = [['3', 'dcvdfgvdg'],['1', 'Prva stran'],['2', 'sdfds'],['', '']];
podstrani = [['4', 'dcvdfgvdg'],['', ''] ];


Spodaj pa imam to kodo:



in..



Rad bi naredil, da ko uporabnik v select-u z imenom stran_vrsta izbere opcijo z vrednostjo 2, da se znotraj select-a z imenom stran_zgornja, vnesejo opcije iz tabele strani, kot je prikazano v zgornjem delu kode, z document.write. Ko pa bo uporabnik v select-u z imenom stran_vrsta izbral opcijo z vrednostjo 3, pa naj bi se napolnil select z imenom stran_zgornja, z vrednostmi tabele podstrani, po enakem postopku kot naj bi se napolnil iz tabele strani.

Nekako sem si to jaz najlažje predstavljal, da naredim trodimenzionalno tabelo strani, v strani[0] bi dal zdajšnja polja tabele strani, v strani[1] pa bi dal polja zdajšnje tabele podstrani, vendar mi to nekako ni uspelo, ker nisem znal prešteti velikosti tabel strani[0] in strani[1], tako da sem obral to, pomojem, slabšo pot.

Vem, da bo potrebno v prvi select dodati onchange="" in nekaj noter, pa ne vem ravno kaj, in javascript v drugem select-u tako predelati, da se bo select spreminjal glede na onchange v prvem select-u.

Hvala za pomoč!

Mimogrede, kako lahko na ST forum dodaš HTML kodo, ko pišeš objavo?

LP

rokpok ::

Eden izmed načinov da dodaš onchange je ta:
<select id="mojselect" onchange="neka_funkcija()">


V JavaScriptu definiraš funkcijo:
function neka_funkcija () {
selectBox = document.getElementById ("mojselect");
selectedValue = selectBox.options[selectBox.selectedIndex];
/*Delaš naprej, s tem karkoli bi pač rad*/
}


Koncept je približno tak, drugače pa ti bo tudi google znal pomagati pri tem. Kodo pa dodaš na slo-tech tako:
(oglati oklepaj)st.koda(oglati zaklepaj)tvoja koda(oglati oklepaj)/st.koda(oglati zaklepaj)

Lp,
Rok
Rad bi bil pingvin.

Zgodovina sprememb…

  • spremenil: rokpok ()

HellBird ::

No, to je bilo že zelo v pomoč. zdaj ve samo še muči to, da če v for zanki naredim
document.write('<option value="1">sdasd</option>');
mi zadevo seveda prikaže na novi strani, ne pa znotraj select box-a. Predvidevam, da bi se to dalo rešiti z AJAX-om, vendar se mi ne sanja kako. Sem tudi malo gledal po googlu in nažalost nisem našel nič v zvezi s tem, kako dodajati nove opcije v select.

Koda pa zdaj zgleda takole:

function menjajOpcije() {
    selectBox = document.getElementById("selectVrsta");
    selectedValue = selectBox.options[selectBox.selectedIndex].value;

        if(selectedValue == 2) {
            for(i = 0; i < (stran.length - 1); i++) {
                document.write('<option value="1">sdasd</option>');
            }
        }
}

rokpok ::

No zadeva nima nič z ajax-om. Problem pa rešiš tako:
selectBox.options[i]= new Option('text','value')
Rad bi bil pingvin.

Zgodovina sprememb…

  • spremenil: rokpok ()

HellBird ::

Odlično! Hvala za vso pomoč. Ni slaba stvar drugače tale javascript...


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

PHP problem

Oddelek: Programiranje
51130 (832) BivšiUser2
»

ASP.NET (C#) - Pomoč

Oddelek: Izdelava spletišč
131106 (883) Denisj
»

Baza & c#

Oddelek: Programiranje
214126 (3184) xardas
»

[Visual C#] TableAdapter

Oddelek: Programiranje
61110 (986) detroit
»

[java] opcijsko okno

Oddelek: Programiranje
102051 (1832) infiniteLoop

Več podobnih tem