Hvordan viser/skjuler jeg elementer i javascript ved hjælp af <select> og ...

Tags:    javascript

Halløj,

Jeg sidder lige nu med et mindre problem. Min idé er at: Jeg har nogle div'er hvor alt efter hvad der er valgt i en dropdown menu, så viser den den rigtige tabel.

div'er bliver genereret af et PHP script.

Mine spørgsmål er så hvordan skal jeg konstruere dette? og hvad ville javascript delen i så fald være? (jeg har aldrig fået sat mig ind i javascript)

for at simplificere problemet har jeg stillet følgende skabelon op:
Fold kodeboks ind/udPHP kode 


som I nok kan se er jeg lidt blank so far, men når 1 bliver valgt, så skal tekst1 vises, og når 2 bliver valgt skal tekst2 vises. Jeg har forsøgt at læse mig lidt frem, men det gik ikke så succesfuldt.

Tak for hjælpen på forhånd



5 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 7 karma
Sorter efter stemmer Sorter efter dato
Tak igen, jeg fik løst problemet, men tak for din løsning. Jeg holder mig dog til min egen løsning, da jeg gerne vil holde mig fra jquery.


Til folk der har lyst til at se min løsning (udarbejdet af en spansk ven), så vedhæfter jeg den lige:
Fold kodeboks ind/udHTML kode 




Den finder os det div med det id som der er i valuen. Det er meget længe siden jeg har lavet noget i javascript, bruger for det meste det libary som hedder jQuery. Hvis du henter det(www.jquery.com) kan du gøre det sådan her.

Dette eksempel virker.

Fold kodeboks ind/udHTML kode 





Har ikke lige testet det, men ville mene at du kan gøre noget i stil med dette

Fold kodeboks ind/udHTML kode 




Hej Andreas, tak for dit hurtige svar.

Har lige testet det du fik skrevet, det virker ikke.

Det skal dog siges at div'erne ikke hedder, 1,2,3,4,5... nogle gange springer den lige nogle tal over med vilje, så det ville være fedt hvis den kunne finde den div som hedder det samme som den value som man har valgt i den der dropdown.



Du skal være opmærksom på at en div som standard har en display: block og ikke inline. Du kan komme ud for at de div'er rykker sig sammen, hvis du bruger inline.

Hvis du bruger visibility, så fylder div'en stadig det den fylder, selvom man ikke kan se den. Det svare lidt til opacity: 0.

Det nemmeste er at bruge jQuery og så skifte indholdet via ajax. Det er også den mest rigtige metode.

Hvis du inkludere jQuery og skriver følgende:

$(document).ready(function(){
$('#test').change(function(){
var valgtTekst = $(this).val();
$('#tekst').load('vaelger.php?valgtTekst='+valgtTekst);
});
});

<select id='test'>
<option value=''>Vælg...</option>
<option value='tekst1'>Vis tekst1</option>
<option value='tekst2'>Vis tekst2</option>
</select>
<div id='tekst'>Intet valgt</div>

I din vaelger.php skal du så modtage valgtTekst med $_GET og slå op i databasen og bare echo det ud på php-siden.

Det skulle spille ;)

// mcardle



t