Checkboxen prüfen

redsetter

Grünschnabel
Hallo an Alle - bitte um eure Hilfe !
es geht um folgendes: ich habe ein Formular mit 5 Checkboxen (auswahl1 bis auswahl5) jedoch kein Array, sondern 5 eigenständige Antworten, die auch in der Datenbank jeweils eine Spalte haben.
bevor ich die Formularinhalte an die Datenbank weiterleite wird geprüft, ob alle Felder ausgefüllt sind. u.a. diese 5 Checkboxen - es muss aber nur eine davon "checked" sein, damit der User weiterkommt. Wenn keine ausgewählt ist - zurück zur Eingabe.

Habe schon alles mögliche probiert, krieg`s aber nicht hin. Wenn ich jede Checkbox mit elseif abfrage, muss der User ja alle ausfüllen. Ein Array daraus zu machen, hat auch nicht funktioniert und diese Variante (siehe Code) klappt auch nicht.
Code:
	elseif ($telefon == ""){
	print "<a href=javascript:history.back()>Sie haben keine Telefonnummer angegeben - bitte gehen Sie zurück zum Formular</a>";
	}
	$auswahl1 == "Eintrag 1";
	$auswahl2 == "Eintrag 2";
	$auswahl3 == "Eintrag 3";
	$auswahl4 == "Besuch";
	$auswahl5 == "Rückruf";
	$checkbox = $auswahl1 or $auswahl2 or $auswahl3 or $auswahl4 or $ auswahl5;
    elseif ($checkbox == "" ) {
	print "<a href=javascript:history.back()>Sie haben keine Auswahl getroffen - bitte gehen Sie zurück zum Formular</a>";
	}
 
Ich hab das so gemacht:

PHP:
		   		if (empty($_REQUEST['tz']) && empty($_REQUEST['keramik']))
		   		{
		   		$allesok = 2;
		   		$fehler['auswahl'] = "Bitte wählen Sie mindestens <u>einen Katalog</u> aus!";
		   		}
Wenn beide leer sind, kommt eine Fehlermeldung, wenn nur eins leer ist nicht. Vielleicht hilfts dir weiter...
 
Hallo !
ich möchte ja nicht bloß eins auswählen. Theoretisch könnte der User ja auch alle 5 auswählen oder eben nur eins.
lg
 
Danke - hat leider nicht geklappt - es reicht nicht, nur 1 und 2 abzufragen. Es könnte ja auch 3 und 4 oder 2 und 5 ausgewählt sein - dann würde es ja auch stimmen.
keine Ahnung, wie ich das lösen könnte.

lg Alea
 
Du koenntest entweder das $_POST-Array (oder $_GET, je nachdem was Du nutzt) mittels isset() nach den Namen der Checkboxen untersuchen.
Oder Du arbeitest mit array_keys() und holst Dir damit die uebergebenen Keys aus dem Array und hast somit die Namen der uebergebenen Checkboxen.
Das schoene an einer Checkbox ist ja, dass sie, wie's aussieht, wirklich nur uebergeben wird wenn sie auch aktiviert ist.
 
Kann man nicht unendlich viele && Bedingungen einbauen?
Wenn ja, musst du das ganze halt mit deinen dreien erweitern...

empty($1) && empty($2) && empty($3) && empty($4) && empty($5)

Somit sollte er nur 'schreien', wenn wirklich alle 5 leer sind...
Wenn man nicht unendlich viele && machen kann, dann entschuldige ich mich hiermit :)
 
Hallo,
vielleicht so:
PHP:
if (!isset($_POST['$auswahl1'], $_POST['$auswahl2'], $_POST['$auswahl3'], $_POST['$auswahl4'], $_POST['$auswahl5'])){
  echo "Bitte eine Checkbox auswählen.";
} else {
  //mach was
}

mfg
forsterm
 
Zurück