PHP: Formular-Eingaben als Array an PHP Skript schicken
Tipp von Stefan Trost | Letztes Update am 19.12.2023 | Erstellt am 29.10.2012
Oft ist es recht praktisch, Eingaben aus einem Formular direkt als Array in einem PHP Skript zu empfangen, um direkt mit der Bearbeitung der Daten in der richtigen Form beginnen zu können. In diesem Tutorial möchte ich euch zeigen, wie das geht.
Typische Anwendungsfälle sind zum Beispiel Formulare mit zahlreichen gleichartigen Feldern oder Formulare, in denen eine vorher unbekannte Anzahl an Feldern dynamisch erstellt wird.
Ein erstes Beispiel
Schauen wir uns zunächst ein einfaches Beispiel an. In unserem ersten Beispiel haben wir drei Eingabefelder und möchten deren Inhalt in unserem PHP Skript "script.php" zusammen in nur einem Array empfangen.
<form action="script.php" method="post"> <input name="feld[]" value=""> <input name="feld[]" value=""> <input name="feld[]" value=""> </form>
Das entscheidende, um die vom Nutzer in das Formular eingegebenen Daten später direkt als Array empfangen zu können, sind die eckigen Klammern. Der Name "feld" ist dabei beliebig, jedoch muss jedes Input-Feld den gleichen Namen feld[] haben, damit alle Nutzereingaben später auch im gleichen Array stehen.
In unserem PHP Skript können wir mit $_POST['feld'] das Array empfangen und auf die übertragenen Werte zugreifen:
// einen einzelnen Wert ausgeben echo $_POST['feld'][0];
Das erste Array-Feld aus unserem Formular hat dabei den Index 0, das zweite 1 und so weiter. In unserem Beispiel greifen wir demnach mit $_POST['feld'][0] auf den Wert, den der Nutzer in das erste Feld eingetragen hat zu.
Wir können mit dem Array wie mit einem ganz normalen Array in PHP arbeiten:
// alle Daten in einem Array empfangen $felder = $_POST['feld']; //alle Daten ausgeben / verarbeiten foreach ($felder as $value) { echo $value; }
In diesem Beispiel weisen wir $_POST['feld'] zum Beispiel einer Variable zu und durchlaufen danach das Array Element für Element. Wir ersparen uns hier also die Arbeit, jedes Feld einzeln ansprechen und auslesen zu müssen.
Namen für die Felder im Array
In unserem ersten Beispiel haben wir durch das Schreiben von [] eine numerisch indizierten Array bekommen. Alternativ können wir den einzelnen Feldern im Array aber auch Namen geben und so einen assoziativen Array erhalten:
<form action="script.php" method="post"> <input name="feld[vorname]" value=""> <input name="feld[nachname]" value=""> <input name="feld[passwort]" value=""> </form>
In unserem PHP-Skript können wir die einzelnen Felder direkt über deren Namen ansprechen:
// alle Daten in einem Array empfangen $felder = $_POST['feld']; // Felder mit dem Namen auslesen $vorname = $felder['vorname']; $nachname = $felder['nachname']; $passwort = $felder['passwort'];
Dies kann es je nach Anwendungsfall einfacher machen, die einzelnen Felder auseinander zu halten.
Weitere Möglichkeiten
Natürlich lassen sich auch beliebig viele Arrays nebeneinander übertragen und auch mit nicht-Array Feldern kombinieren:
<form action="script.php" method="post"> <input name="feld[]" value=""> <input name="feld[]" value=""> <input name="andererarray[]" value=""> <input name="normalesfeld" value=""> <input name="andererarray[]" value=""> </form>
Und anschließend in PHP auslesen:
$feld = $_POST['feld']; $andererarray = $_POST['andererarray']; $normalesfeld = $_POST['normalesfeld']; foreach ($feld as $value) echo $value; foreach ($andererarray as $value) echo $value; echo $normalesfeld;
Damit lässt sich schon im Formular festlegen, in welcher Form die Daten später verfügbar sein werden. Darüber hinaus sind wir, wie man sieht, völlig frei in der Anordnung und können normale Felder auch zwischen Array-Felder mischen. Die Reihenfolge spielt keine Rolle.
Über den Autor
Software von Stefan Trost finden Sie auf sttmedia.de. Benötigen Sie eine individuelle Software nach Ihren eigenen Wünschen? Schreiben Sie uns: sttmedia.de/kontakt
Profil anzeigen
Ähnliche Themen
PHP: Alle leeren Elemente aus String-Array entfernen
Tipp | 0 Kommentare
HTML5 Canvas als Bild an Server senden und speichern
Tutorial | 0 Kommentare
JavaScript: Arrays erstellen und nutzen
Info | 0 Kommentare
jQuery: HTML5 Canvas mit Ajax an Server senden
Tutorial | 0 Kommentare
Mehrere Texte gleichzeitig ersetzen
Tutorial | 0 Kommentare
jQuery: Komplettes Formular abschicken und Inhalt mit Ajax empfangen
Tutorial | 12 Kommentare
Lazarus: Datei als Byte-Array laden und Byte-Array als Datei speichern
Tutorial | 0 Kommentare
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.