00 Stimmen

PHP: Dynamische POST Variablen von Formular empfangen

Frage von Gast | 01.03.2012 um 21:50

Ich habe ein Formular mit einer Vielzahl von Eingabefeldern, die meisten davon sind durchnummeriert. Nun würde ich die Eingaben gerne mit einem PHP Skript weiterverarbeiten, wobei die Daten mit POST gesendet werden.

Das Problem: Würde man den Namen jedes Eingabefeldes einzeln ansprechen, würde das Skript unglaublich lang und sähe ungefähr so aus:

$var1 =  $_POST['feld1'];
$var2 =  $_POST['feld2'];
$var3 =  $_POST['feld3'];
$var4 =  $_POST['feld4'];
// und so weiter

Gibt es hier nicht die Möglichkeit irgendwie in einer Schleife die Namen der Felder dynamisch anzusprechen oder das ganze zu vereinfachen?

AntwortenPositivNegativDatumStimmen
00 Stimmen

Das ist recht einfach. Ich zeige dir mal einige Möglichkeiten, wie du vorgehen kannst.

Zunächst kannst du eine Variable benutzen, die den Namen des Eingabefeldes enthält:

$varname = 'feld1';
$var1 = $_POST[$varname];

Mit einer Schleife geht es auch:

for ($i=1; $i<=10; $i++) { // feld1 bis feld10
  $name = 'feld'.$i;
  $var = $_POST[$name];
  // Verarbeitung von $var
}

Oder mit einem Array:

// Array mit den Namen der Eingabefelder
$namen = array('feld1', 'feld2', 'feld3');

// Möglichkeit 1
foreach ($namen as $value) {  // Array durchgehen
  $var = $_POST[$value];
  // Verarbeitung von $var
}

// Möglichkeit 2
for ($i=0; $i<3; $i++) {
  $var = $_POST[$namen[$i]];
  // Verarbeitung von $var
}

Schau einfach, was du am besten in deinem Skript verwenden kannst.
02.03.2012 um 09:35

AntwortenPositiv Negativ
00 Stimmen

Alternativ kannst du auch dafür sorgen, dass die Daten aus dem Formular direkt als Array übertragen werden. Dein Formular kann dazu zum Beispiel so aussehen:

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

Dann kannst du in PHP alles direkt in einen Array speichern und weiter verarbeiten:

// alle Daten in einem Array empfangen
$eingaben = $_POST['eingabe'];

//alle Daten ausgeben / verarbeiten
foreach ($eingaben as $value) {
  echo $value;
}

Du benennst einfach alle Eingabefelder mit dem selben Namen und schreibst [] dahinter. Das bewirkt, dass die Daten als Array gesendet werden. Den Array kannst du dann direkt in PHP weiter verarbeiten.

Edit: Mehr zu dem Thema könnt ihr im Tipp Formular Eingaben per Array an PHP Skript schicken lesen.
04.03.2012 um 19:31

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

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.