[PHP] foreach zeigt letztes Item an

  • Hallo,


    ich steh grad etwas aufm Schlauch, und zwar habe ich eine HTML Tabelle, wo man hat die Möglichkeit hat die Items via Checkbox auszuwählen.
    Anschließend wollte ich für Testzwecke das ganze mal printen lassen ob überhaupt die POST Übergabe erfolgreich war...
    Mein Problem ist, dass mir in der foreach Schleife nur das letzte Item angezeigt wird.


    Kann mir jemand weiterhelfen?
    Ich bin auch noch auf der Suche nach ner Lösung...
    Wie gesagt in der foreach Schleife werden mir nicht alle ausgewählten Items angezeigt, woran könnte es liegen?


    Code:

    PHP
    <?php 
        foreach($_POST as $key => $value) 
            echo "$value <br/>"; 
    ?>
  • Du solltest den Inputs/Select Boxen einen Namen geben, logischerweise überschreibst du sie jedes mal wenn ein neuer "Eintrag" erzeugt wird (also in der while Schleife) weshalb es sich anbietet die Inputs/Selects als Array zu schreiben bzw. verarbeiten zu lassen.



    Und dann eben ein print_r mit $_POST was dir die gewünschten Daten ausgeben sollte.

    Mit freundlichen Grüßen
    Developer
    Go/Python Developer | ehm. Webdeveloper | Fachinformatiker Anwendungsentwicklung
    Arbeitet in einem cloudigen Umfeld bei einem der größten deutschen Rechenzentrumsbetreibern

  • nein, wenn so:

    PHP
    <?php
    echo $_POST['checkbox'][0];

    Mit freundlichen Grüßen
    Developer
    Go/Python Developer | ehm. Webdeveloper | Fachinformatiker Anwendungsentwicklung
    Arbeitet in einem cloudigen Umfeld bei einem der größten deutschen Rechenzentrumsbetreibern

  • Merci!
    Vielen Vielen Dank für deine Hilfe klappt einwandfrei.
    Hab jetzt dazu gelernt bezüglich der "Eintrag" erzeugung.


    Eine kurze Frage hätte ich noch und zwar wie könnte ich beide Arrays getrennt in einer Loop-Schleife anzeigen lassen?
    Habe so versucht:

    PHP
    foreach($_POST as $key) {
        if($_POST["checkbox"]) {
            echo str_replace("_", "", $key)."<br/>";
        }
        if($_POST["options"]) {
            echo $key."<br/>";
        }
    }

    Wie könnte man beide denn trennen?
    Vielleicht könntest du mir noch bei der einen Sache helfen ^^

  • Das kannst du frei machen wie du willst, z.B.

    PHP
    foreach($_POST as $key => $array_inhalt) {
    	if("checkbox" == $key) {
    		echo str_replace("_", "", $array_inhalt)."<br/>";
    	}
    	if("options" == $key) {
    		echo $array_inhalt."<br/>";
    	}
    }

    Mit freundlichen Grüßen
    Developer
    Go/Python Developer | ehm. Webdeveloper | Fachinformatiker Anwendungsentwicklung
    Arbeitet in einem cloudigen Umfeld bei einem der größten deutschen Rechenzentrumsbetreibern

  • guck dir mal die Funktion "implode" an :)

    Mit freundlichen Grüßen
    Developer
    Go/Python Developer | ehm. Webdeveloper | Fachinformatiker Anwendungsentwicklung
    Arbeitet in einem cloudigen Umfeld bei einem der größten deutschen Rechenzentrumsbetreibern