Problem bei $_POST (mehrere Values in Form)

Megamorph

Mitglied
Hallo,
ich programmiere gerade ein PN-System. Nun bin ich auf ein Problem gestoßen:
Der User soll einfach Häckchen hinter die PN's setzen, die er löschen will und dann unten auf den Button "löschen" klicken. Ich habe folgenden Lösungsansatz (vereinfacht):

HTML:
<form action="datei.php" method="post">
<input type="checkbox" name="msgid" value="msg8">
...PN Text
<input type="checkbox" name="msgid" value="msg15">
...PN Text
</form>

Die <input...> zum löschen werden mit Hilfe einer PHP-Schleife realisiert. In dem value steht so zu sagen die "ID". Man muss ja später beim löschen wissen, welche PN aus der Datenbank gelöscht werden soll (jede PN hat eine einzigartige ID).
Mit diesem PHPcode kann ich bereits auf die ID von einer PN zugreifen:

PHP:
$msgid = $_POST['msgid'];

Aber wie gesagt, ich bekomme nur die ID von einer einzigen PN (immer von der letzten).
Wenn der User jetzt aber mehrere PN's mit einem mal löschen will, funktioniert das ganze nicht.

Habt ihr Vorschläge, wie man das realisieren könnte?
Vielen Dank schon im Vorraus für alle Antworten :)
mfg Megamorph

PS: unterschiedliche Namen für die <input....> kommen kaum in Frage, weil die Anzahl nicht bekannt ist. Es können 3 aber auch 5000 sein.
 
Probier mal den Namen „msgid[]“. Damit werden die übergebenen Werte serverseitig als Array behandelt.
 
Ok, danke.

Und wie kann ich dann die Anzahl der im Array enthaltenen Elemente feststellen? (also damit auch die Anzahl der zu löschenden PN's)

Wie kann ich dann in PHP darauf zugreifen?
Normal: $variable[1], $variable[2], $variable[3] .....

Aber wie funktioniert das dann bei POST?

PHP:
$_POST['variable']

edit:
OK, ich habe es nun. Für alle, die diesen Thread über die Forensuche finden, hier die Lösung:

In $_POST['msgid'] ist jetzt das Array aus dem Forumular aus dem 1. Post!
Um auf die einzelnen Elemente zugreifen zu können, übertragen wir das Array in eine extra Variable:
$msgid = $_POST['msgid'];
jetzt können wir so auf die elemente zugreifen:

echo $msgid[0];
echo $msgid[1];
echo $msgid[2];
 
Zuletzt bearbeitet:
Hallo ^^

Mit Foreach kann man alle Werte auslesen:

PHP:
foreach ($_POST['msgid'] as $key => $var){
echo $var."<br>";
}

Und mit Count kann man die Anzahl der Elementen bekommen

PHP:
echo count($_POST['msgid']);
 
Zurück