[PHP] Dropdown bepaald waardes volgende dropdown

Pagina: 1
Acties:
  • 121 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Erhnam
  • Registratie: Januari 2000
  • Laatst online: 13:33

Erhnam

het Hardware-Hondje :]

Topicstarter
Ik hoop dat met de titel een beetje duidelijk is wat ik bedoel. Ik heb een dropdown list, deze haalt zijn waardes uit een database.

Nadat een bepaalde waarde is selecteerd moet het de bedoeling zijn bij de volgende dropdown nieuwe waardes worden opgehaald (deze zijn afhankelijk van bij de eerst gekozen waarde (- select * from voorbeeld where titel = dropdown1)).

Een mooi voorbeeld is www.belbios.nl. Maar hoe zorg je na een selectie van de eerste dropdown, dat de tweede dropdown wordt gerefreshed?

http://www.xbmcfreak.nl/


Acties:
  • 0 Henk 'm!

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

volgens mij gebeurt dat met javascript, je wil dat de client iets gaat doen...

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

waarom bekijk je op die site de source (lees: html/js/css output) niet?

[ Voor 24% gewijzigd door Erkens op 21-11-2003 15:15 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Je kunt aan een dropdown menuutje een javascriptje koppelen met bijvoorbeeld onSelect.

In je onSelect zet je dan een verwijzing naar een JS die er voor zorgt dat de waarde van de keuze doorgezonden wordt middels een POST methode bijv.
Als je dan het form naar de pagina laat posten waar het form opstaat, en dan aan de hand van die POST waarde een bepaald select menu laat zien, dan kom je al een heel eind denk ik. Sorry voor de wat beknopte uitleg (-:

Edit: Kleine uitleg:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// welk dropdown menu weergeven straks?
if(isSet($_POST['keuze'])) {
    $soortMenu = $_POST['keuze']; // nog even een extra check doen
} else {
    $soortMenu = 1;
}

// formulier met je dropdown menuutjes
echo '<form method="post">';
echo '<select onSelect="this.form.submit()" name="keuze">';
echo '<option value="2">keuze 2</option>';
// etc. etc.
echo '</select>';
echo '</form>';


// hier tweede dropdown neerzetten
// bijvoorbeeld alle waardes in een DB zetten en m.b.v. een Query alle options weergeven

$query = "SELECT options FROM tabelnaam WHERE id = " . $soortMenu;

// of iets dergelijks (-:

[ Voor 43% gewijzigd door Verwijderd op 21-11-2003 15:43 ]


Acties:
  • 0 Henk 'm!

  • Anders
  • Registratie: December 2000
  • Laatst online: 13-09 18:52
Als de hoofdlijst en de mogelijke sublijsten niet te lang zijn, kun je ook in 1 keer de lijsten binnenhalen en in JavaScript-arrays wegschrijven - dat scheelt je een refresh als je iets in de hoofdlijst selecteert. Op www.irt.org kun je daar wel voorbeelden van vinden in de JavaScript Form FAQ.

Ik spoor veilig of ik spoor niet.


Acties:
  • 0 Henk 'm!

Verwijderd

Hij herlaad die pagina gewoon met de variable die je geselecteerd hebt.
bv.
code:
1
2
3
4
5
<select name="stad" onSelect="window.location.href='blaat.php?stad=' . stad.value;">
<option>Eindhoven</option>
<option>Amsterdam</option>
<option>Rotterdam</option>
</select>


en dan met php zoiets:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?
$stad = $_GET['stad'];
if(!$stad){
?>
<select name="stad" onSelect="window.location.href='blaat.php?stad=' . stad.value;">
<option>Eindhoven</option>
<option>Amsterdam</option>
<option>Rotterdam</option>
</select>
<select name="bios">
<option>Selecteer eerst een stad!</option>
</select>
<?
}else{
?>
<select name="stad" onSelect="window.location.href='blaat.php?stad=' . stad.value;">
<option <? if($stad=="Eindhoven"){ echo "selected"; } ?>>Eindhoven</option>
<option <? if($stad=="Amsterdam"){ echo "selected"; } ?>>Amsterdam</option>
<option <? if($stad=="Rotterdam"){ echo "selected"; } ?>>Rotterdam</option>
</select>
<select name="bios">
<?
if($stad=="Eindhoven"){
?>
<option>Snap je 't een beetje? :)</option>
<?
}
?>
</select>
<?
}
?>


Nouja, ik heb dit niet getest maar zoiets zou dus moeten werken, heb zoiets zelf ook al eens gemaakt.

[ Voor 25% gewijzigd door Verwijderd op 21-11-2003 21:03 ]


Acties:
  • 0 Henk 'm!

  • ajvdvegt
  • Registratie: Maart 2000
  • Laatst online: 13-08 16:01
Van iets dergelijks kan je hier (apple.com) een voorbeeld vinden (helemaal naar beneden scrollen voor het voorbeeld). Zij gebruiken Remote Scripting via onzichtbare iframes. Ze hebben kant-en-klare code voor je daar (de JavaScript code dan, PHP moet je zelf doen :)).

I don't kill flies, but I like to mess with their minds. I hold them above globes. They freak out and yell "Whooa, I'm *way* too high." -- Bruce Baum


Acties:
  • 0 Henk 'm!

  • Suepahfly
  • Registratie: Juni 2001
  • Laatst online: 17-09 17:05
Nog een tipje zoek even naar filterSelect.js

Daar heb ik het meer opgelost (ik moest het voor een palicatie doen waar de pagina niet mee re-freshed mocht worden, dus eerst alle waarden uit DB met een loop de waarden bij elkaar zoek en dan filteren met js)

Acties:
  • 0 Henk 'm!

Verwijderd

ik heb ook nog een goed voorbeeldje voor je... helaas asp.net maar goed:
http://authors.aspallianc...tnet/dropdownrewrite.aspx
Pagina: 1