Autor | Zpráva | ||
---|---|---|---|
kierenn Profil * |
#1 · Zasláno: 29. 8. 2008, 16:53:14
Dobrý den, potřeboval bych pomoc. Mám dynamicky tvořený formulář (položky jsou výpisem z databáze) a potřebuju udělat ověření, zda je odeslána alespoň jedna hodnota. Položky ve formuláři předem neznám. Formulář má action="get". Napadlo mě to zpracovat pomocí foreach, ale nejsem si jist jak na to.... pro úplnost přikládám kód
function createForm(){ $this->result=mysql_query("SELECT * FROM `".$GLOBALS['table']."`"); for($this->j=0;$this->j<mysql_num_fields($this->result); $this->j++){ $this->item=mysql_field_name($this->result, $this->j); echo $this->item.': <input type="text" name="'.$this->item.'" class="filterInput" /><br />\n'; } } function form(){ echo'<div id="dialogFiltr">\n'; echo'<form action="'.$_SERVER['PHP_SELF'].'" method="get" enctype="text/plain">\n'; echo'Filtrovat dle:<br />\n'; $this->createForm(); echo'<input type="submit" name="send" value="Filtruj" class="filterSubmit" />\n'; echo'</form>\n'; echo'</div>\n'; } a potřebuji nějakou podmínku, která, když bude formulář prázdný provede jednu věc a když ne, tak provede věc jinou (jak jinak :D ) jsem už bezradný, proto prosím o pomoc |
||
Joker Profil |
#2 · Zasláno: 29. 8. 2008, 16:59:37
kierenn
Názvy políček vytáhnete a potom... if(empty($_GET["policko1"]) && empty($_GET["policko2"]) && ...){ // formulář je prázdný } Případně cyklus: - nastavíte vlajku - pro všechna políčka: pokud není prázdné, shodíte vlajku - pokud je vlajka nastavená, formulář je prázdný Jinak by šlo testovat, jestli existuje $_GET[cokoliv], ale to není zrovna spolehlivé... stačí, aby se kromě formuláře GET-em posílalo i něco jiného, nebo třeba session ID, a projde i prázdný formulář. |
||
Nox Profil |
#3 · Zasláno: 29. 8. 2008, 17:00:32
Moc jsem to nečet, ale:
„potřebuju udělat ověření, zda je odeslána alespoň jedna hodnota. “ Prošel bych foreachem a u první položky, která by nebyla prázdná a zároveň by se její key nerovnal namu Submitu (pokud měl nastaveno), tak se exitne (příp. teda nastaví proměnná, že je vše ok) třeba $err=1; foreach($_POST as $key => $p){ if($key!="send" && !empty($p)){ $err=0;exit; } } if($err==1){ echo "Nebyla vyplněna žádná položka nebo se pomrvil testovací mechanismus"; } if($err==0){ ... } |
||
kierenn Profil * |
#4 · Zasláno: 29. 8. 2008, 17:17:30
Nox
Super díky moc! Přesně tohle sem potřeboval. |
||
Nox Profil |
#5 · Zasláno: 30. 8. 2008, 11:15:32
Sakra tam asi nemá být exit, ale break ...snad si na to došel sám
|
||
Časová prodleva: 16 let
|
0