Gå til innhold

dropdown lister som har avhengighet...


Anbefalte innlegg

Hei!

 

Lurer på hvordan jeg kan gjøre 4 forskjellige bokser avhengige av hverandre. Se vedlegg.

 

Jeg har fire dropdown bokser. Disse er alder, grad, kjønn og vektklasse. Første dropdown er alder; som utløser grad. Når alder er velgt, så er det forskjellige grader som er mulig. Deretter når grad er valgt, så skal man velge kjønn.

 

Den siste boksen er så klart den som er avhengig av de tre andre. Denne boksen inneholder alle vektklassene, og endres etter om det er en jente på 14, jente på 18, eller gutt på 14 osv...

 

Er dette mulig å gjøre med javascript?

 

Takk for hjelpen!

post-27957-1220976933_thumb.jpg

Lenke til kommentar
Videoannonse
Annonse

Ja, det er mulig. Det ville vært ganske typisk å bruke XmlHttpRequest til dette hvis listene er lange og kombinasjonene mange, men man kan også fint legge dataene i fornuftige strukturer som en del av JavaScriptet som blir lastet ned med siden. Uansett må du bruke onchange-events på de ulike boksene og bytte ut innholdet i de andre fortløpende. Hvis du trenger hjelp til å bytte ut options i en select-boks kan du f.eks. se her: http://www.plus2net.com/javascript_tutorial/list-remove.php

Lenke til kommentar

HTML DOM Select

 

Ser her at select-objektet har en metode kalt add() som legger til options.

Du vil da kunne bruke onchange til å legge til options.

 

Scriptet:

function addOptions(id, selectOptions) {
var selectBox = document.getElementById(id);
	for(var i = selectBox.options.length - 1; i >= 0; i--)
	selectBox.remove(i); // Fjerner alle elementene i dropdownlisten

for(var key in selectOptions) {
	element = document.createElement('option');
	element.text = selectOptions[key];
	try {
		selectBox.add(element, null); // W3C Standard
	} catch(ex) {
		selectBox.add(element); // IE
	}
}

selectBox.disabled = false;
}

 

HTML:

<select id="sel01" onchange="addOptions('sel02', new Array('bah', 'hah', 'kah'));">
<option>Cake</option>
<option>Daim</option>
<option>Snickers</option>
</select>
<br />
<select id="sel02" disabled="disabled">
</select>

 

PS: Dette er mer et eksempel på hvordan det kan gjøres. Det finnes uten tvil andre måter som er mer elegante. For å legge til basert på input kan du bruke hjelpemetoder til å generere arrayene som legges til i select.

 

Det kan også være en ide å bruke AJAX for å f.eks. verifisere navn mot database (For å hindre duplikater) for å få "kontinuerlig" feedback. I en mindre form går det allikevel bra å sende alt i en omgang da det ikke er så mye å velge uansett.

Endret av Caene
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...