1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Arraywerte in PHP mit Formular eingeben

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von Aaron_Horowitz, 30.01.07.

  1. Aaron_Horowitz

    Dabei seit:
    19.01.07
    Beiträge:
    116
    Kann mir jemand sagen, wie man die Werte eines Arrays (PHP) durch ein Eingabeformular (HTML) zuweisen kann? Ich hab´s mit der Übermittlungsmethode $_POST versucht! Geklappt hat es leider nicht. In meinen Büchern hab ich hierzu nichts gefunden, was mir weiterhilft!
    Hier der Code der HTML-Datei:

    <html>
    <body>
    Bitte tragen Sie die Temperaturen der letzten 3 Tage ein! <p>
    <form action = "post.php" method ="post">
    Wert1: <input name = "tp[1]"> Erster Tag <p>
    Wert2: <input name = "tp[2]"> Zweiter Tag <p>
    Wert3: <input name = "tp[3]"> Dritter Tag <p>
    <input type = "submit">
    <input type = "reset">
    </form>
    </body>
    </html>

    Und hier der Code der PHP-Datei:

    <html>
    <body>
    <?php
    for($i=0; $i<=3; $i=$i+1)
    {
    echo "$_POST["tp[$i]"] <br>";
    }
    ?>
    </body>
    </html>
     
  2. duderino

    duderino Goldparmäne

    Dabei seit:
    26.01.06
    Beiträge:
    556
    Versteh irgendwie nicht was du meinst. Willst du die Werte in ein Array schreiben oder willst du die Werte aus einem Array nehmen und dann darstellen?

    duderino
     
  3. .holger

    .holger Geflammter Kardinal

    Dabei seit:
    13.09.04
    Beiträge:
    9.117
    fehlt da bei dem input nicht der Feldtyp?
     
  4. Hack

    Hack Granny Smith

    Dabei seit:
    17.11.04
    Beiträge:
    16
    Hi,

    wenn ich Dich richtig verstehe, willst du wissen, wie Du das Array in PHP korrekt ansprichst:

    Code:
    for ( $i=0; $i<count( $_POST['tp'] ); $i++ )
    {
      echo $_POST['tp'][$i]."<br>";
    }
    Ich denke, eine weitere Erklärung ist nicht nötig, ich bin so schlecht im beschreiben ;)

    Generell hat .holger natürlich recht und Du solltest im Formular den Feldern auch einen Typ zuweisen...
     
  5. duderino

    duderino Goldparmäne

    Dabei seit:
    26.01.06
    Beiträge:
    556
    Vielleicht ist es so einfacher:

    Allerdings versteh ich immernoch nicht so recht was du damit machen willst, wenn es also nicht hilft, einfach vergessen ;)

    duderino
     
  6. Aaron_Horowitz

    Dabei seit:
    19.01.07
    Beiträge:
    116
    Ich möchte damit gar nichts besonderes machen, - hat mich nur rein theoretisch interessiert, da ich mir momentan mit einem Buch PHP anzueignen versuche.

    Zur Erleuterung meines Problems

    Um dem Array Werte zuzuweisen kann ich folgendermassen vorgehen:

    <?php
    $tp=array(17.4,19.2,21.8);
    for ($i=0;$i<=3;$i=$i+1)
    {
    echo "$tp[$i] <br>";
    }
    ?>

    Anstelle der Wertzuweiseung durch $tp=array(...) wollte ich nun Eingabeformular verwenden, indem die Werte eingegeben werden können, um sie dann mit $_POST in die PHP-Datei einzulesen! Ich wundere mich wirklich, dass hierzu in diesem Buch nichts zu finden ist!
     
  7. Aaron_Horowitz

    Dabei seit:
    19.01.07
    Beiträge:
    116

    Vielen Dank! Es hat geklappt!!!:)
     
  8. Aaron_Horowitz

    Dabei seit:
    19.01.07
    Beiträge:
    116
    Also mit dem Vorschlag von Hack hats geklappt! Ich werd aber Deine Lösung auch noch ausprobieren! Vielen Dank für die Bemühungen!
     
  9. Hilarious

    Hilarious Gelbe Schleswiger Reinette

    Dabei seit:
    10.08.05
    Beiträge:
    1.759
    Wenn Du ein Array in einem Array in einem Array hast, wird das in PHP so notiert:
    Code:
    $Array[$a][$b][$c];
    // usw.
    
    Also nur nicht die eckigen Klammern verschachteln und schon gehts. Dass PHP die _POST-Werte eigenständig in Unterfelder schachtelt ist ein angenehmer Nebeneffekt, der hilft, die Formularwerte zu sortieren, was ich selbst gern dafür nutze, Personendaten von Bestelldaten, Terminen oder anderen Dingen abzugrenzen.

    Eine hübsche Darstellung als Dump erhältst Du hiermit, dann wird es auch klarer, wenn man bestimmte Werte aus dem Baum selektieren möchte:
    Code:
    echo "<pre>\n", print_r($feldvariable), "</pre>\n";
    
     
  10. mewX

    mewX Wohlschmecker aus Vierlanden

    Dabei seit:
    26.12.06
    Beiträge:
    241
    Nochmal zur Erklärung was du falsch gemacht hast:

    echo "$_POST["tp[$i]"] <br>";

    => Arrays können so nicht ausgegeben werden, da kommt PHP mit den Anführungszeichen durcheinander.
    Entweder:
    echo $_POST["bla"] . " <br>";
    oder
    echo "{$_POST['bla']} <br>"; (aber würde ersteres vorziehen)

    gruß
     
  11. Hilarious

    Hilarious Gelbe Schleswiger Reinette

    Dabei seit:
    10.08.05
    Beiträge:
    1.759
    Sein Problem war allerdings weniger das Array erster Tiefe, sondern das Array innerhalb des ersten. Statt
    $_POST['tb[$i]']
    muss es
    $_POST['tb'][$i]
    heißen.
     

Diese Seite empfehlen