dropdown auswahl selected machen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • dropdown auswahl selected machen

    hallo ich weiss die überschrifft hört sich sehr einfach an allerdings ist es nicht ganz so einfach. ich habe ein array mit zwei einträgen. ich kann mir die daten über ein dropdown menü auswählen und über einen hole button in mein formular einlesen. allerdings kommt jetzt das problem das dropdown menü springt wieder automatisch auf den ersten eintrag vom array zurück. ich möchte es aber so haben das die auswahl auch noch drücken von hole im dropdown stehen bleibt.

    <?php
    function def($inputname)
    {
    global $aktuelleAdresse;
    if (!empty($aktuelleAdresse[$inputname])) {
    echo $aktuelleAdresse[$inputname];
    }
    }

    function speichern()
    {
    $adressen[$_POST["aktuelleAdresse"]] = [
    "vorname" => $_POST["vorname"],
    "nachname" => $_POST["nachname"],
    "adresse" => $_POST["adresse"],
    "hausnummer" => $_POST["hausnummer"],
    "plz" => $_POST["plz"],
    "ort" => $_POST["ort"]
    ];
    file_put_contents("gepackteDaten.txt", serialize($adressen));
    }

    function auslesen()
    {
    return unserialize(file_get_contents("gepackteDaten.txt"));
    }

    function holen()
    {
    global $adressen;
    $i = $_POST["aktuelleAdresse"];
    return $adressen[$i];
    }

    function selected($adressen)
    {
    if(!empty($_POST["holen"]) && $_POST["holen"]== $adressen)
    {
    echo "selected";
    }
    }

    function neu()
    {
    $adressen[] = [];
    }
    $adressen = auslesen();

    if(!empty($_POST["speichern"])) {
    speichern();
    }
    if(!empty($_POST["holen"]))
    {
    $aktuelleAdresse = holen();
    }

    jetzt kommt noch der html teil

    <?php include ("vergleich.php");?>
    <form action = "index.php" method = "post">
    <b>Bitte den Datensatz Auswaehlen</b><br/>
    <p><select name="aktuelleAdresse">
    <?php
    for($i= 0; $i<count($adressen); $i++)
    {
    echo '<option value="'.$i.'"selected>'.$adressen[$i]["vorname"]."</option>";
    }
    ?>
    </select>
    <input type="submit" name="holen" value="holen" /></p>
    <br/>
    <label for="vorname">Vorname:
    <input type="text" name="vorname" value="<?php def("vorname")?>">
    </label>
    <label for="nachname">Nachname:
    <input name="nachname" value="<?php def("nachname") ?>">
    </label>
    <br/>
    <br/>
    <label for="adresse">Adresse:
    <input name="adresse" value="<?php def("adresse") ?>">
    </label>
    <label for="hausnummer">Hausnummer:
    <input name="hausnummer" value="<?php def("hausnummer") ?>">
    </label>
    <br/>
    <br/>
    <label name="plz">PLZ:
    <input name="plz" value="<?php def("plz") ?>">
    </label>
    <label name="ort">Ort:
    <input name="ort" value="<?php def("ort") ?>">
    </label>
    <p><input type="submit" name="speichern" value="speichern"/>
    <input type="reset" name="reset" value="neu" /></p>

    vielen dank schon im vorraus und seht es mir nach wenn der post nicht ganz konform ist. ist mein erster

  • #2
    Willkommen im Forum.

    Nicht jedes option-Element mit der selected-Eigenschaft versehen, sondern nur dasjenige, bei dem value dem (etwaigen, muss ja nicht gesetzt sein) Wert in $_POST['aktuelleAdresse'] entspricht.

    Kommentar


    • #3
      leider hat mir das nicht geholfen ich weiss was du meinst aber ich komme nicht drauf wo ich dann die selected deklaration machen muss ich werde nochmal schauen ob ich was finde. aber danke für die schnelle antwort. achja und übrigens habe mittlerweile alle selected aussagen aus dem programm genommen.

      schönen tag noch

      Kommentar


      • #4
        Ungefähr so:

        PHP-Code:
        for($i0$i<count($adressen); $i++)
        {
            
        $selected '';

            if (isset(
        $_POST['aktuelleAdresse']) && $i === (int)$_POST['aktuelleAdresse']) {
                
        $selected ' selected';
            }

            echo 
        '<option value="'.$i.'"'.$selected.'>'.$adressen[$i]["vorname"]."</option>";

        PS: Schau dir mal Kontextwechsel an: Programmiertechnik/Kontextwechsel ? SELFHTML-Wiki Du solltest noch Escaping mit htmlspecialchars hinzufügen.

        Kommentar


        • #5
          wollte nur noch mal danke sagen habe es jetzt geschafft.

          Kommentar

          Lädt...
          X