Autor Zpráva
Webbuilder
Profil *
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
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 *
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
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 *
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
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
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 *
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
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 *
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 *
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
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 *
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
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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