9 13 Stimmen

PHP: Formular-Eingaben als Array an PHP Skript schicken

Tipp von Stefan Trost | 29.10.2012 um 15:02 Uhr

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. Zum Beispiel bei einem Formular mit zahlreichen gleichartigen Feldern. In diesem Tipp möchte ich euch zeigen, wie ihr vorgehen könnt.

Ein erstes Beispiel

In unserem ersten Beispiel haben wir drei Eingabefelder und möchten deren Inhalt in unserem PHP Skript "script.php" als Array empfangen.

<form action="script.php" method="post">
  <input name="feld[]" value="" />
  <input name="feld[]" value="" />
  <input name="feld[]" value="" />
</form>

Wir geben jedem Eingabefeld dazu den Namen "feld[]". "feld" ist dabei ein beliebiger Name, die eckigen Klammern geben an, dass wir die Daten als Array übertragen möchten.

// alle Daten in einem Array empfangen
$felder = $_POST['feld'];
 
//alle Daten ausgeben / verarbeiten
foreach ($felder as $value) {
  echo $value;
}

In unserem PHP Skript können wir mit $_POST['feld'] das Array empfangen und direkt weiterverarbeiten. Wir ersparen uns hier also die Arbeit, jedes Feld einzeln ansprechen und auslesen zu müssen.

Namen für die Felder im Array

Alternativ können wir den einzelnen Feldern im Array Namen geben:

<form action="script.php" method="post">
  <input name="feld[vorname]" value="" />
  <input name="feld[nachname]" value="" />
  <input name="feld[passwort]" value="" />
</form>

Entsprechend können wir die Daten danach im PHP Skript empfangen:

// alle Daten in einem Array empfangen
$felder = $_POST['feld'];

// Felder mit dem Namen auslesen
$vorname  = $felder['vorname'];
$nachname = $felder['nachname'];
$passwort = $felder['passwort'];

Damit ist es einfacher, 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 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.

AntwortenPositivNegativ

Über den Autor

Avatar AutorSoftware 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 | Nachricht

 

Ähnliche Themen

Wichtiger Hinweis

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.