Paul Styrnol: Mehrere input-Felder gleichen Namens verarbeiten

Beitrag lesen

Hallo,

echo $_POST["gname"][$i] . ' ... ' . $_POST["gtitel"][$i] . '<br>';

Es werden aber lediglich die Punkte untereinander ausgegeben, es scheint als wären keine Formulardaten vorhanden.

Das wird dann wohl der Fall sein. Wenn du das error_reporting auf E_ALL stellt sagt dir das das PHP sogar.

Ich verstehe aber nicht warum das so ist. Vom Formular her müsste doch es doch eigentlich alles funktionieren, oder kann es Probleme geben weil ich die Datensatznummer im name-Attribut quasi als Array mitgebe? Aber normalerweise sollte es doch klappen oder?

$i = 0;
foreach($_POST["gname"] as $bla) {
  $a_id = $_POST["visible"][$i];
...
  $i++;
}

Außerdem ist das foreach hier falsch angewendet. Es nützt ja nichts, ein $i hochzuzählen, um damit auf nicht vorhandene Keys zuzugreifen. So wendet man foreach im Allgemeinen richtig an:

foreach ($array as $key => $value)
  echo $value;
oder
  echo $array[$key];

Ich hatte mir das so gedacht: foreach sorgt dafür, dass die Schleife so oft ausgeführt wird wieviele Datensätze vorhanden sind. Durch das zusätzliche hochzählen von $i erreiche ich das jeweils der Datensatz mit der Nummer verarbeitet wird, die ich über das Formular im name-Attribut mitgegeben habe.

Viele Grüße
Paul

--
Meine Photos:  http://www.rapunzeln.de