Autor Zpráva
spouny
Profil *
je možný udělat aby byl select závislej na select? s radio button vim jak to udělat ale potřeboval bych jestli by to šlo udělat takhle přes menu.
rada_losik
Profil
<form name='forms' method='post'>

<table align='center'>
<colgroup>
<col valign='top' width='22%'>
<col valign='top' width='78%'>
<tr>
<td>Typ <td><select name='typ' class='input' onchange='value=document.getElementById("typ").value;
fkat(value)' class='input'>
<option value='0'>Vyberte typ--><option value='vtip'>Vtipy
<option value='basen'>Basničky<option value='text'>Texty
</select>
<tr>
<td>Kategorie <td><select name='show_kat' id='show_kat' class='input'>
</select>
<SCRIPT LANGUAGE="JavaScript"><!--
function fkat(typ){
document.forms.show_kat.options.length = 0; //vyprazdnime SELECT

if(typ == 0){
document.forms.show_kat.options[0] = new Option("První vyberte typ-->", 0);

} else {
kategorie = new Array();
kategorie[0] = new Array('1', 'Alkohol', 'vtip');
kategorie[1] = new Array('6', 'Blondýnky', 'vtip');
kategorie[2] = new Array('2', 'Černy hunmor', 'vtip');
kategorie[3] = new Array('9', 'Doktoři', 'vtip');
kategorie[4] = new Array('14', 'Dopisy', 'text');
kategorie[5] = new Array('3', 'Doprava', 'vtip');
kategorie[6] = new Array('19', 'Emaily', 'text');
kategorie[7] = new Array('4', 'Gayové a lezbičky', 'vtip');
kategorie[8] = new Array('5', 'Kneží a jeptišky', 'vtip');
kategorie[9] = new Array('10', 'Školské', 'vtip');
kategorie[10] = new Array('17', 'Návody', 'text');
kategorie[11] = new Array('13', 'Počítačové', 'text');
kategorie[12] = new Array('7', 'Policejní', 'vtip');
kategorie[13] = new Array('18', 'Povídky', 'text');
kategorie[14] = new Array('20', 'Pracovní', 'text');
kategorie[15] = new Array('16', 'Pro ženy', 'text');
kategorie[16] = new Array('15', 'Pro muže', 'text');
kategorie[17] = new Array('12', 'Směska', 'text');
kategorie[18] = new Array('11', 'Sport', 'vtip');
kategorie[19] = new Array('8', 'Zvířata', 'vtip');

//vypsani kategorii
document.forms.show_kat.options[0] = new Option("Vyberte kategorii-->", 0);
for(_i = 1, id = 1; _i < kategorie.length; _i++){
if(kategorie[_i][2] != typ){ continue; }
document.forms.show_kat.options[id] = new Option(kategorie[_i][1], kategorie[_i][0]);
id++;
}

//kdyz nema kat.
if(id == 1){
document.forms.show_kat.options[0] = new Option("Vybraný typ nemá kategorie", 0);
}
}

//pokud ma show_kat jen jednu polozku "zasedni" (disabled)
if(document.forms.show_kat.options.length == 1){
document.getElementById('show_kat').disabled = true;
} else {
document.getElementById('show_kat').disabled = false;
}
}

fkat("0");

//--></script>
</table>

</form>


Toto je script celého formuláře kde to funguje. Když to zkopíruješ do nějakýho webovýho souboru tak ti to bude fungovat.

Ale jinak se vše skrývá v: cesta_k_selectu.options[id] = new Option(výstup, value);

Cely SELECT je vlastně pole, které vyplňujeme hodnotami index je to ID. Zbytek asi nejvíce vysvětlí tag...

<option value="value">Vystup

Tak a to je vše;)
spouny
Profil *
tak díky.....du to hned zkusit........
spouny
Profil *
tak mi to funguje i si to upravim podle svýho......ale jeste pls help ......jak tam dodam další okno aby bylo vázaný na to druhý?
spouny
Profil *
tady je celej ten script. Pomozte mi pls najít chybu...



<form name='forms' method='post'>
<table align='center'>
<colgroup>
<col valign='top' width='22%'>
<col valign='top' width='78%'>
<tr>
<td>Typ <td><select name='typ' class='input' onchange='value=document.getElementById("typ").value;
fkat(value)' class='input'>
<option value='0'>Vyberte typ<option value='sezeni'>Sezení
<option value='stani'>Stání
</select>
<tr>
<td>Kategorie <td><select name='show_kat' id='show_kat' class='input'>
</select>
<SCRIPT LANGUAGE="JavaScript"><!--
function fkat(typ){
document.forms.show_kat.options.length = 0; //vyprazdnime SELECT

if(typ == 0){
document.forms.show_kat.options[0] = new Option("První vyberte typ", 0);

} else {
kategorie = new Array();

kategorie[1] = new Array('1', 'Prizemí', 'sezeni');
kategorie[2] = new Array('2', 'Patro 1', 'sezeni');
kategorie[3] = new Array('3', 'Patro 2', 'sezeni');

//vypsani kategorii
document.forms.show_kat.options[0] = new Option("Vyberte kategorii", 0);
for(_i = 1, id = 1; _i < kategorie.length; _i++){
if(kategorie[_i][2] != typ){ continue; }
document.forms.show_kat.options[id] = new Option(kategorie[_i][1], kategorie[_i][0]);
id++;
}

//kdyz nema kat.
if(id == 1){
document.forms.show_kat.options[0] = new Option("Vybraný typ nemá kategorie", 0);
}
}

//pokud ma show_kat jen jednu polozku "zasedni" (disabled)
if(document.forms.show_kat.options.length == 1){
document.getElementById('show_kat').disabled = true;
} else {
document.getElementById('show_kat').disabled = false;
}
}

fkat("0");

//--></script>

<tr>
<td>Sezeni <td><select name='sezeni' id='sezeni' class='input'>
</select>
<SCRIPT LANGUAGE="JavaScript"><!--
function fkat(show_kat){
document.forms.sezeni.options.length = 0; //vyprazdnime SELECT

if(show_kat == 0){
document.forms.sezeni.options[0] = new Option("První vyberte kategorii", 0);

} else {
sezeni = new Array();

sezeni[1] = new Array('1', '1', 'Prizemí');
sezeni[2] = new Array('2', '10', 'Patro 1');
sezeni[3] = new Array('3', '12', 'Patro 2');

//vypsani kategorii
document.forms.sezeni.options[0] = new Option("Vyberte sezení", 0);
for(_i = 1, id = 1; _i < sezeni.length; _i++){
if(sezeni[_i][2] != show_kat){ continue; }
document.forms.sezeni.options[id] = new Option(sezeni[_i][1], sezeni[_i][0]);
id++;
}

//kdyz nema kat.
if(id == 1){
document.forms.sezeni.options[0] = new Option("Vybraný typ nemá kategorie", 0);
}
}

//pokud ma sezeni jen jednu polozku "zasedni" (disabled)
if(document.forms.sezeni.options.length == 1){
document.getElementById('sezeni').disabled = true;
} else {
document.getElementById('sezeni').disabled = false;
}
}

fkat("0");

//--></script>

</table>

</form>
Kid
Profil *
Moc pěkný! Jde udělat aby data pro vyplňování jednotlivych selectu tahal z databáze? Dík za radu
Toto téma je uzamčeno. Odpověď nelze zaslat.

0