Autor Zpráva
starburst
Profil
zdravim, delam formular a napadlo me jak ochranit aby nebyl odeslan bez vyzadovanych udaju... to neni nic težkyho... jenomže formulař je poměrně obsahly a když člověk celý formulář vyplní a da odeslat a ono mu to napíše nevyplnil jste všechny potřebné údaje tak mu to celý formulář smaže a většina lidí se na to vykašle aby to znovu vyplňovala... napadlo mě udělat ochranu tak, že dokud se nevypiší všechny vyžadované údaje tak se neprosvítí tlačítko odeslat... nevíte jak to udělat? proste je šedý a nejde na něj kliknout a když se vyplní všechny údaje co jsou potřeba tak se tlačítko prosvítí a lze formulář odeslat.

díky
Tasartir
Profil
Javascriptové řešení určitě možné je, ale není to moje parketa, na to odpovídat nebudu. Spíš bych rád nastínil jiné řešení: Je takový problém při neúspěšném odeslání formuláře všechna vyplněná data vypsat z post proměnných?
DJ Miky
Profil
Přikláněl bych se taky k tomu serverside řešení (PHP,…) a vypsání všech polí zpět z $_POST. Přeci jen JavaScript nemá (zapnutý) každý.
janix
Profil *
Já to řeším tak, že odešlu formulář ke zpracování php skriptu. Pokud skript zjistí, že je něco nevyplněno, tak vypýše tlačítko <input type="button" value="Zpět" onclick=window.history.back()>'. Kliknutím na něj vrátí uživatele v historii o jeden krok zpět a formulář zůstane takový, jak jej uživatel vyplnil a odeslal.
V javascriptu se nevyznám, ale podle mě to nějak půjde.
starburst
Profil
pravda...to me nenapadlo ze by to nefungovalo u vsech... to s tim butonem window.history.back() bylo prvni co me napadlo...ale chtel jsem to udelat nejak aby to cloveka upozornilo a nemusel nic delat jenom dopsat to co mu chybelo... to s tim vypsanim z postu je zajimave...
a jak by se to dalo udelat? nejaky priklad prosim... děkuji
yFang
Profil
starburst
<input name="pole" type="text" value="<?php if(isset($_POST['pole'])) echo $_POST['pole'];?">

V případě, že uživatel pole vyplnil, tak se zobrazí, co tam napsal.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: