Autor | Zpráva | ||
---|---|---|---|
r0me0 Profil |
#1 · Zasláno: 2. 1. 2010, 16:36:18
Zdravím,
potřebuji udělat select pro jednotlivé kraje a po zvolení kraje by se zobrazil okres. Dělám to tak, že si v php vytáhnu z db všechny kraje, vytvořím pro ně selecty s okresy a nechám jim display:none, potom jsem napsal js funkci, které pošlu id kraje a ona mi zobrazí select s požadovanými okresy tím, že změní display na block. Ovšem nevím, jak ten select s okresy zase vrátit na display:none, pokud si to uživatel rozmyslí a zvolí jiný kraj. Za pomoc děkuju. <?php $sql_kraje1 = mysql_query("SELECT id,nazev FROM crn_kraje"); $select_kraj .= '<form method="post" action="">'; $select_kraj .= '<select name="kraj" id="kraj" onchange="zobraz_select(\'kraj\')">'; $select_kraj .= '<option value="0"> - vyberte - </option>'; while($kraje = mysql_fetch_array($sql_kraje1)) { $select_kraj .= '<option value="'.$kraje['id'].'">'.$kraje['nazev'].'</option>'; } $select_kraj .= '</select>'; $select_kraj .= '<form>'; echo $select_kraj; $sql_kraje2 = mysql_query("SELECT id,nazev FROM crn_kraje"); while($k = mysql_fetch_array($sql_kraje2)) { $sql_okres = mysql_query("SELECT id,nazev FROM crn_okresy WHERE kraj = ".$k['id']." ORDER BY nazev"); $vypis .= '<select name="kraj_'.$k['id'].'" style="display:none" id="kraj_'.$k['id'].'">'; while($o = mysql_fetch_array($sql_okres)) { $vypis .= '<option value="'.$o['id'].'">'.$o['nazev'].'</option>'; } $vypis .= '</select>'; } echo $vypis; ?> <script> function zobraz_select(id_formulare) { var id_selectu; var id; if(document.getElementById(id_formulare).value != 0) { id = document.getElementById(id_formulare).value; id_selectu = id_formulare+'_'+id; el = document.getElementById(id_selectu).style.display = "block"; } } </script> |
||
Molda Profil |
#2 · Zasláno: 2. 1. 2010, 22:24:35
Něco podobnýho sem řešil ,položky druhýho selectu jsou v tom javascriptu a podle volby v prvním se mění
<select id="parent0_1"> <option value="1">Vyber </option> <option value="2">CD</option> <option value="3">DVD</option> </select> <select id="parent0_2"> </select> $("#parent0_1").change(function(){ s1 = $('#parent0_1').val(); switch (s1) { case '1' : $("#parent0_2").html('<option class="sub_1" value="vyber">Nejprve vyber</option>');break; case '2' : $("#parent0_2").html('<option class="sub_1" value="jazz">Jazz</option><option class="sub_1" value="rock">Rock</option>');break; case '3' : $("#parent0_2").html('<option class="sub_2" value="horor">Horor</option><option class="sub_2" value="pohadka">Pohádka</option>');break; default : ; } }); |
||
Jan Tvrdík Profil |
#3 · Zasláno: 2. 1. 2010, 22:30:06
Molda:
Rvát to do JS mi nepřijde jako ideální řešení. r0me0: Zkus upravit ten JS nějak takto: var zobrazeno; function zobraz_select(id_formulare) { var id_selectu; var id; if (document.getElementById(id_formulare).value != 0) { id = document.getElementById(id_formulare).value; id_selectu = id_formulare + '_' + id; if (zobrazeno) document.getElementById(zobrazeno).style.display = "none"; zobrazeno = id_selectu; document.getElementById(id_selectu).style.display = "block"; } } |
||
r0me0 Profil |
#4 · Zasláno: 3. 1. 2010, 10:53:28
Jan Tvrdík:
super, funguje, díky :) |
||
Časová prodleva: 14 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0