Spracovať to môžeš v PHP (po odoslaní formulára), akurát pokiaľ máš formulár v .html súbore, musíš pridať do <form> tagu časť action="tvoj_php_subor.php", kde prebehne spracovanie, ošetrenie vstupov a odoslanie cez funkciu mail() - ak máš formulár v php súbore, bez určenia action sa vráti obsah formulára do aktuálneho php súboru.
Teraz ide o to, zobraziť a odoslať input
Meno iba ak je v select-e
test vybratá možnosť
Vlastné.
Tu sú dve javascript funkcie: (túto časť kódu vlož do <head></head> súboru s formulárom)
Kód:
<script type="text/javascript">
function getSelectValue(id){
var element = document.getElementById(id);
var str = element.options[element.selectedIndex].value;
var meno = document.getElementById('Meno');
if(str == "Vlastná"){
if (meno.style.display=="none"){
meno.style.display="block";
}
} else {
meno.style.display="none";
}
}
function control(){
if(Meno.style.display=="none"){
document.test1.Meno.disabled="true";
}
}
</script>
Funkcia
getSelectValue vyberie
value vybraného selectu, ak je vybraná možnosť == "Vlastná", nastaví elementu s id('Meno') [to je ten dodatočne zobrazený input] display="block" (input bude zobrazený). Inak nastaví display="none", takže input nebude zobrazený. To by bolo ku riešeniu zobrazenia vstupu len pri výbere "Vlastná", teraz ešte zabezpečiť, aby sa vstup "Meno" odoslal iba ak je vybraná možnosť "Vlastná" zo select-u a na to slúži funkcia
control, ktorá je naviazaná na onClick submit button-u a po odoslaní skontroluje, či je nastavený style="none". Ak áno, doplní do vstupu "Meno" disabled="true" a tým obmedzí odoslanie tohto vstupu (inak by bol normálne odoslaný, aj keď prázdny). V opačnom prípade je vstup "Meno" odoslaný spolu s formulárom.
Teraz html kód formuláru:
Kód:
<form name="test1" id="test1" action="tvoj_php_subor.php" method="get">
<select style="width: 172px;" onchange="getSelectValue('test')" id="test" name="test">
<option value="Nevybrané" selected="selected">Vyber</option>
<option value="Vlastná">Vlastná</option>
<option value="Test2" disabled="disabled">Test2</option>
</select>
<input style="display:none;" class="form-input" id="Meno" name="Meno" type="text">
<br /><input type="submit" value="odoslať" onclick='control();' />
</form>
Tu si nastav vlastný .php súbor, ktorý formulár spracuje (namiesto
tvoj_php_subor.php) a metódu spracovania (method="
get", alebo method="
post") podľa toho, ako chceš v .php súbore ku hodnotám z formulára pristupovať ($_GET['premenna'], alebo $_POST['premenna']) a či potrebuješ vstupy odosielať v adrese (get), alebo nie (post).
Ak budeš meniť id, alebo name niektorého vstupu, treba podľa toho upraviť aj javascript funkcie.