Autor | Zpráva | ||
---|---|---|---|
Webbuilder Profil * |
#1 · Zasláno: 24. 2. 2009, 20:52:15
Dobrý den,
potřeboval bych příkaz v php který neodešle formulář, dokud nebudou mnou definované proměnné vyplněny. např : <input name="jmeno" /> <input name="mobil" /> <input name="email" /> Povinné je jméno a email. Díky |
||
yFang Profil |
#2 · Zasláno: 24. 2. 2009, 21:00:40
Webbuilder
„potřeboval bych příkaz v php který neodešle formulář, dokud nebudou mnou definované proměnné vyplněny. “ Pomocí PHP to nepůjde, to může kontrolovat až po odeslání. Zabránit odeslání formuláře můžeš javascriptem. |
||
Webbuilder Profil * |
#3 · Zasláno: 24. 2. 2009, 21:06:33
Ja myslel ze se do action souboru (send.php / mailer.php ) da prikaz neco jako :
if isset ( (.$jmeno) or (.$email) ) nebo něco takového, php moc nerozumím, ale neco v tomhle smylsu by to mělo bejt. btw. když pomocí javascriptu, jak ? nebo kde se o této problematice dozvím více. |
||
Werewolf Profil |
#4 · Zasláno: 24. 2. 2009, 21:15:10
Webbuilder
„if isset ( (.$jmeno) or (.$email) )“ Tak to je drsný... Když už, je to if (!isset($jmeno) or !isset($email)) { ... } A pomocí JS je to var jmeno = document.getElementById('jmeno'); var email = document.getElementById('email'); if (jmeno.value == "" or email.value == "") { alert("Jedno z povinných polí nebylo vyplněno!"); } Pokud ale použiješ to JS řešení, musíš <input name="jmeno" /> <input name="mobil" /> <input name="email" /> nahradit <input name="jmeno" id="jmeno" /> <input name="mobil" /> <input name="email" id="email" /> |
||
Webbuilder Profil * |
#5 · Zasláno: 24. 2. 2009, 21:20:54
„Webbuilder“
„„if isset ( (.$jmeno) or (.$email) )““ „Tak to je drsný...“ :D tak snad sem pobavil, rikam, php netusim , Jinak díky, vyzkouším. |
||
yFang Profil |
#6 · Zasláno: 24. 2. 2009, 21:24:52
Webbuilder
Jinak samozřejmě to musíš kontrolovat na straně serveru v každém případě. Javascript je jen taková nadstavba pro uživatelské pohodlí. |
||
Budulinek Profil |
#7 · Zasláno: 25. 2. 2009, 09:20:47
Tak tak... Lze to kontrolovat přes PHP, kdy po odeslání skript zkontroluje, jestli jsou pole vyplněné a případně jdou ošetřit i další kritéria (například pro mail lze pomocí reg. výrazů zkontrolovat, jestli řetězec obsahuje jméno, zavináč, doménu a příponu... atd.). Pokud formulář nevyhový všem stanoveným podmínkám, vrátí se zpět na formulář. Tady jde pak nastavit, aby se zobrazila nějaká chybová hláška u polí, které nevyhověly a pokud se to správně udělá, tak zůstanou i vyplněné hodnoty.
Další způsob je pres JS, kdy lze hned při vyplňování kontrolovat správnost údajů. Pokud nebudou vyhovovat, nemusí být povoleno formulář odeslat. Ale vždy bych to ještě kntroloval na serveru přes PHP. Pokud bysis s tím chtěl jó pohrát, tak ještě AJAX :) |
||
Webbuilder Profil * |
#8 · Zasláno: 25. 2. 2009, 13:36:02
díky za rady,, en por upřesnění, do stránky s formulářem mam vlozit :
<script> var jmeno = document.getElementById('jmeno'); var email = document.getElementById('email'); if (jmeno.value == "" or email.value == "") { alert("Jedno z povinných polí nebylo vyplněno!"); } </script> Nebo je potřeba dalších kroků, JS a PHP moc neovladám, zatím jen xhtml css, tak prosím o trpělivost :) |
||
SwimX Profil |
#9 · Zasláno: 25. 2. 2009, 13:45:29
Webbuilder
ten skript cos napsal [#8] ti hodí hlášku „alert("Jedno z povinných polí nebylo vyplněno!"); “ pokud nebude vyplněné jméno a email. Což bude asi pokaždé pči reloadu stránky, budeš muset zajistit aby se provedl právě když někdo zkusí odeslat formulář -> myslím že onSubmit u formuláře -> zavolá funkci -> a vní bude todle. Funkce bude bool a podle toho co vrátí se form buď odešle nebo ne. Takže ten alert vyhoď dej tam return false, nadefinuj tu funkci a pak to pojede. |
||
Dado Profil * |
#10 · Zasláno: 25. 2. 2009, 20:04:38
porosim vas tu nemohol by my niekto pomoc s formularom?
mam ho spraveny ale ked prepinam na iny subor na stranke tak to nezostane ulozene |
||
Dado Profil * |
#11 · Zasláno: 25. 2. 2009, 20:07:37
ako to preniest do inych suborov?
priklad: mam index.php prihlasim sa ked sa premnem do napr.:stranka2.php tak mi to neulozilo ako na index kde som sa prihlasil |
||
starburst Profil |
#12 · Zasláno: 26. 2. 2009, 18:28:18
no mam to reseny takto:
<script type="text/javascript"><!-- function validate(formular) {var p; p=formular.jmeno; if(p.value == ""){alert("Zadejte prosím jméno.");p.focus();return false;} p=formular.vzkaz; if(p.value == ""){alert("Napište nějaký vzkaz.");p.focus();return false;} return true; } // --></script> a na formulari mam toto: <form name="form" method="post" action="vzkaz.php" onsubmit="return validate(this)"> a funguje to bezvadne |
||
Dado Profil * |
#13 · Zasláno: 28. 2. 2009, 19:35:22
„no mam to reseny takto:“
„123456789101112 <script type="text/javascript"><!--function validate(formular){var p; p=formular.jmeno; if(p.value == ""){alert("Zadejte prosím jméno.");p.focus();return false;} p=formular.vzkaz; if(p.value == ""){alert("Napište nějaký vzkaz.");p.focus();return false;} return true;}// --></script>“ „a na formulari mam toto:“ „1 <form name="form" method="post" action="vzkaz.php" onsubmit="return validate(this)">“ „a funguje to bezvadne“ starburst to bola odpoved pre mna? |
||
Chamurappi Profil |
#14 · Zasláno: 28. 2. 2009, 20:03:51
Reaguji na Dado:
„to bola odpoved pre mna?“ Samozřejmě, že ne. Proč by tu měl někdo odpovídat tobě, když se v tomto vlákně řeší zcela jiný dotaz Webbuildera? Tvůj dotaz bude smazán i odtud, stejně jako již zmizel z názoru na stránku Str4wberryho. Možná časem pochopíš, že by sis měl založit vlastní vlákno. |
||
Časová prodleva: 15 let
|
0