[PHP] Checkboxen prüfen

F

freddymc

Hallo!

Ich habe ein Script geschrieben mit dem man sich per session Management einloggen kann, weitere Benutzer hinzufügen und eigene Daten ändern kann.
Das Ganze soll für ein späteres News-Script o.ä. als "Autorisierung" dienen...

So, jetzt will ich als Admin ja auch mal andere Nutzer rauswerfen :devil: .
Dazu lese ich zunächst einmal alle Benutzer aus und hänge hinter jeden ausgegebenen Benutzer eine Checkbox.
Unter die Auflistung kommt dann noch ein "Löschen"-Button mit dem der ausgewählte/die ausgewählten Benutzer gelöscht werden.

Der Code zur Auflistung:
PHP:
<form action="<?php $PHP_SELF ?>" name="" method="post">
<?php 
	while ($row=mysql_fetch_row($result)) {
	###### if um zu verhindern, dass man sich selbst zum löschen auswählen kann
		if ($row[1] != $userinsession) {
			print ('<input name="cb[]" type="checkbox" value="'.$row[0].'" class="check"><label for="username" class="labelcheck">'.$row[1].'</label>');
			print ('<br><hr><br>');
		}
		else {
			print ('<input name="disabled" type="checkbox" disabled="true" value="'.$row[0].'" class="check"><label for="username" class="labelcheck">'.$row[1].'</label>');
			print ('<br><hr><br>');
		}
	}
	?>
	<input type="submit" value="L&ouml;schen">
	</form>

Die Checkbox hat als Namen "cb[]", sodass daraus nach dem posten ein Array daraus wird. Nun will ich gucken welche Checkboxen "gecheckt" wurden, um die dann aus der Datenbank zu löschen. Ich nehme an, dass ich hier foreach() verwenden muss/sollte... Aber ich hab absolut keinen Blassen wie ich das machen soll :( :hilfe2:

Hinzuzufügen wäre noch, dass ich wohl unter der Kategorie "blutiger-php-Anfänger" bzw. "Gelegenheits-Gästebuch-Programmierer" falle und ihr mir es sagen solltet, wenn's auch irgendwie anders geht.

Vielen Dank schonmal!

Fred
 
Nene das frisst er nicht! Du musst einen Counter machen und dann den namen der Checkbox entsprechend cb[$counter].

Anschliessend kannst du
foreach( $_REQUEST[cb] as $counter => $value )
...

Gruss
Joel
 
Danke für die Antwort!
Er scheint es doch zu fressen:
wenn der name der checkboxen 'cb[]' lautet, wird der Wert der ersten angekreuzte Checkbox in 'cb[0]' gespeichert. Der zweite in 'cb[1]', usw. Nicht angekreuzte werden nicht übertragen und nicht im Array gespeichert.

So kann ich jetzt jeden Wert mit
PHP:
foreach ($_POST['cb'] as $value)
rauslöschen :D

Ich freu mich so :D

//edit: Warum verwenden viele bei foreach() immer $_REQUEST und nicht $_POST? Funktioniert das nicht auch?
 
Zuletzt bearbeitet von einem Moderator:
Huuuuh? Das geht echt? Geil! Haett ich mir nicht gedacht..

$_REQUEST akzeptiert form method=post wie auch method=get. Sprich wenn deine Applikation auch via Direktlinks mit get-Variablen (Beispiel: index.php?page=test -> page ist der Name der GET Variable) ansprechbar sein soll ist dies der beste Weg.
 

Ähnliche Themen

Php mysql suchausgabe

NagiosGrapher 1.7.1 funktioniert nicht

Website Textfeld aktivieren wenn Checkbox aktiviert wird

Variablen in Session speichern

dovecot und postfix Konfiguration Problem

Zurück
Oben