norbert: array aus form mit post übergeben

ich habe ein formular mit unbstimmter anzahl von textfeldern.
ich vergebe die namen der felder auf folgende weisse.
name = "text1['<? echo $i ?>']"
$i ist ein zähler.

leider kommt im zielscript unter $text1['$i'] nichts an.
wo ist der denkfehler?

danke norbert

  1. Hallo,

    leider kommt im zielscript unter $text1['$i'] nichts an.

    Wenn $i eine Zahl ist, reicht eigentlich $text1[$i].
    Sollte aber AFAIK nichts aendern, PHP ist da "flexibel".

    Wenn register_globals off ist (bei modernen PHP-Installationen ist das
    die Grundeinstellung), kannst Du nur noch ueber $_POST[]
    auf die POST-Variablen zugreifen.

    Lass Dir mal den Inhalt von $_POST ausgeben, z.B. mit
    var_dump() oder print_r().

    Ansonsten: Ist das HTML des Formulars valide?
    Hast Du mal in den HTML-Quelltext geguckt?

    Gruesse,

    Thomas

    1. Hallo,

      Kleiner Nachtrag:

      Wenn register_globals off ist (bei modernen PHP-Installationen ist das
      die Grundeinstellung), kannst Du nur noch ueber $_POST[]
      auf die POST-Variablen zugreifen.

      Oder natuerlich auch ueber $_REQUEST.
      Oder (und das funktioniert auch in aelteren PHP-Versionen)
      ueber $_HTTP_POST_VARS.

      Vielleicht hilft Dir auch
      http://www.dclp-faq.de/q/q-formular-checkbox.html
      weiter. Dort geht es zwar um Checkboxen, aber eben auch
      um Arrays, die vom Formular ans Skript geschickt werden.
      (Fall #2 entspricht Deinem Problem.)

      Ich habe auf die Schnelle im Manual nicht gefunden,
      wie man auf die Variablen zugreifen kann, wenn es sich
      um "verschachtelte" Arrays handelt, d.h.
      $text1[1], $text1[2] innerhalb von $_POST.

      Ich glaube, es geht so (wie bei mehrdimensionalen Arrays):
      $_POST["text1"][1]
      $_POST["text1"][2]
      Vielleicht kann das jemand bestaetigen/korrigieren und bitte
      einen Link auf die entsprechende Stelle im Manual angeben.

      Gruesse,

      Thomas

  2. Hi!
    Ich hatte ein ähnliches Problem.
    Bei mir kam aber noch dazu, dass ich später auch GET einsetzen musste, wodurch es Probleme mit den Arrays gab.
    Ich hab das ganze dann mit variablen Variablen gelöst:

    Benennung der <input>s: name="text1_<?echo $i?>"

    Aufruf:
    $a = "text1_" . $j;
    $ausgabe = $$a;

    Alles klar?

    mgg Andi