Checkboxen mit php abfragen

hey, ich hab mal ne frage :wink2:

ich hab eine seite mit checkboxes, die will ich abhaken und anschließend das formular an ne php-datei schicken. der punkt ist die parameterübergabe. funktioniert alles prächtig mit text-feldern etc, aber mit checkboxen weiß ich einfach nciht wie ich das handhaben soll…

ich nehme an ich muss es als array behandeln, soweit google :slight_smile:

kann mir jmd zeigen wie ich das als array entgegennehme, sodass ich anschließend mit ner schleife drüber gehn kann?

mfg
emil

name=“xyz[]”

verdammt ich glaub ich stell mich grade echt zu blöde…

ich erhalte jedesmal den selben fehler:
Warning: Invalid argument supplied for foreach() in /users/aurachtaler/www/admin_contra.php on line 56

Meine HTML-Datei

<form action="admin_contra.php" method="post">
	<p>
		<input type="checkbox" name="id[]" value="3" />
		TextTextText
	</p>
	<p>
		<input type="checkbox" name="id[]" value="2" />
		TextTextText
	</p>
	<p>
		<input type="checkbox" name="id[]" value="1" />
		TextTextText
	</p>
	<p>
		<input type="submit" value=" L&ouml;schen " />
		<input type="reset" value=" Abbrechen " />
	</p>
</form>

Meine PHP-Datei:

$id_array = $_POST["id[]"];
foreach($id_array as $id) {
         echo $id;
}

line 56 ist übrigens die zeile mit dem foreach-schleifenkopf…

setz am Anfang deines Skriptes

error_reporting(E_ALL);

Dann findest du den Fehler sehr schnell :wink:

Bei Checkboxen gibts komische Sachen, ich hab festgestellt, dass die nur nach $_POST übertragen werden, wenn sie markiert sind. Hast du wenigstens eine Checkbox markiert?

Das ist keine „komische Sache“, sondern genau das Verhalten, das die HTML-Spezifikation vorgibt.

wenn du wissen willst was der Browser übergeben hat:

print_r($_POST);und schwupp solltest du es hinbekommen :wink:

naja, das problem, dass was ankommen tut, hab ich nicht.
wenn ich auslese, was im POST steht, is eigentlich alles da, was da sein soll…
ich bekomme den fehler

Notice: Undefined index: id[] in /users/… in line blablabla

ich habe folgendes: $id_array = $_POST[“id[]”];
ich hab mir das so vorgestellt, dass ich einfach mit dem POST ein array übergeben bekomme - wies laut google eigentlich auch hinhauen sollte, und das ganze einfach in ne variable dresche…

wo ist denn dabei das problem?

probier mal

(auf die Gefahr hin dass ich Bullshit verzähle :wink: )

nein, haut leider nicht hin… =(

aber i-was sagt mir, dass michi7x7 die antwort kennt :ps:

Es muss mindestens eine Checkbox markiert sein, sonst klappt das nicht.

ist es :slight_smile:
habs mit einer versucht, mit 2, mit keiner, mit 100 :ps:

Also $_POST[‘id’] enthält ein numerisches Array mit den Werten der Checkboxen, die angekreuzt sind.

Hast du mal print_r($_POST); probiert?

gibt mir folgendes raus:

Array ( [id] => Array ( [0] => 3 ) [todo] => gaestebuch )

stimmt soweit… ich habe einen input type=“hidden” mit dem value “gaestebuch”. und eine checkbox abgehakt - der value der checkbox = 3

array[0] = 3 stimmt also - und mehr sollte nicht kommen…