| 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: 17 let
|
|||
Toto téma je uzamčeno. Odpověď nelze zaslat.
0