Autor Zpráva
kierenn
Profil *
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
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
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 *
Nox
Super díky moc! Přesně tohle sem potřeboval.
Nox
Profil
Sakra tam asi nemá být exit, ale break ...snad si na to došel sám

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:

0