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

Dynamische Funktion / 2 Dropdownmenüs

Dieses Thema im Forum "PHP" wurde erstellt von fl1tz, 28. Juni 2017.

  1. fl1tz

    fl1tz Grünschnabel

    Ich habe 2 Dropdownmenüs (jeweils mehrere Elemente).
    Ich will eine dynamische Funktion erstellen.
    Ziel: Wenn ich auf den submit-Button klicke, soll das jeweiligs gewählte Menü aufklappen
    Ich benötige eine Funktion, mit der ich per submit-Button das Aufklappen des Menüs steuere.

    Das Formular sähe etwa so aus:
    Code (HTML5):
    1. <form action = "<eigeneDatei.php" method = "post">
    2. <p>
    3. <select id='dynam1' name='ausW1'>
    4.    <option name="hand" value='klF'">kleiner Finger</option>
    5.    <option name="hand" value='ringF'>Ringfinger</option>
    6.    <option name="hand" value='mittelF'>Mittelfinger</option>
    7.    <option name="hand" value='zeigeF'>Zeigefinger</option>
    8. </p>
    9. <p>
    10. <select id='dynam2' name='ausW2'>
    11.    <option name="bluse" value='weltB'>Welt-Blusen</option>
    12.    <option name="bluse" value='euroB'>Europa-Blusen</option>
    13.    <option name="bluse" value='lokalB'>Lokal-Blusen</option>
    14.    <option name="bluse" value='hofB'>Hof-Blusen</option>
    15.    <option name="bluse" value='kellerB'>Keller-Blusen</option>
    16. </p>
    17.  
    18. <input type="submit" value="abschicken">
    19. </form>
    Mein Ansatz für die Funktion:

    Code (PHP):
    1. function dynamAuswahl ($id, $name, array $options, $multiple = false)
    Die Funktion aufrufen will ich im Body innerhalb des Formulars dann mit ...

    Code (PHP):
    1. <?php
    2. echo "dynamAuswahl"("dynam1", "ausW", array("klF", "ringF", "mittelF", "zeigeF"), false);
    3. </p>
    4. <p>
    5. echo "dynamAuswahl"("dynam2", "ausW2", array("weltB", "euroB", "lokalB", "hofB"), true);
    6. </p>
    7. <input type="submit" value="abschicken">
    8. ?>
    Ich weiß. Wenn man's kann, ist es pipi leicht. Mir fehlt die Initialzündung.
     
  2. fl1tz

    fl1tz Grünschnabel

    Ich habe - Anfängerfehler - meine Frage auch auf selfphp.de sowie phpforum.de gepostet. Auf der Suche nach einer Lösung, nicht um Menschen zu beschäftigen oder an der Nase herumzuführen. Meine Lösung werde ich hier auch veröffentlichen.

    Ich bitte meinen Fauxpas zu entschuldigen.
     
  3. lockcat

    lockcat Erfahrenes Mitglied

    Hi,

    das was du steuern möchtest wird nicht mit PHP klappen. Du wirst Javascript benötigen. PHP kann die Dynamik im Browser bei einem Click Event nicht steuern.

    PHP ist serverseitig und Javascript Client seitig.

    Versuche es mal im anderem Bereich Javascript & Ajax.

    Lg
     
  4. sheel

    sheel I love Asm Administrator

    Hi

    Keine Sorge, wir denken nicht dass wir den alleinigen Anspruch auf Fragen haben :)

    Aber, falls in den anderen Foren jemand eine PHP-"Lösung" hatte, wäre ein Link sehr interessant...
    wie lockcat sagt, sowas gibt es eigentlich nicht.
     
  5. fl1tz

    fl1tz Grünschnabel

    Ich drücke mich wohl auch völlig unklar aus.
    Ich möchte mit einer Funktion, die folgende Elemente hat ...

    PHP:
    1. function dynAuswahl ($id, $name, array $options, $multiple = false)
    von diesem Zustand eines Dropdowns ...

    [​IMG]

    zu diesem kommen ...

    [​IMG]
     
  6. fl1tz

    fl1tz Grünschnabel

    Im PHP-Forum hat TessaKavanagh folgenden Vorschlag gemacht: (https://www.php.de/forum/webentwicklung/php-einsteiger/1489629-php-funktion-dynamische-auswahlliste)

    PHP:
    1. <input type="submit" value="abschicken">
    2. </form>
    3.  
    4. function dynAuswahl ($id, $name, array $options, $multiple = XXXX)
    5. {
    6.   if(XXXXXXXXXXXX)
    7.   {XXXXXXXXXX = "XXXXXX";}
    8.  
    9.     foreach(XXXXXXXXXXX as $key => $value)
    10.     {
    11.     $format = '<option XXXXXXXXXXXX</option>';
    12.     $result .= sprintf(XXXXXXXXXXXXXX);
    13.     }
    14.  
    15. $format = '<select XXXXXXXXXXXXXXXXX</select>';
    16. return $result = sprintf(XXXXXXXXXXXX);
    17. }
    soweit bin ich ->

    PHP:
    1. function dynAuswahl ($id, $name, array $options, $multiple = false)
    2. {
    3.   if($multiple != false)
    4.   {$multiple = "multiple";}
    5.  
    6.     foreach($options as $key => $value)
    dann verließen sie ihn ...
    Werden denn da beide Selects mit den Options reingebaut? Ich hab einfach keine Vorstellung. :confused:
     
  7. fl1tz

    fl1tz Grünschnabel

    Naja, habe sprintf noch nie verwendet. Vielleicht geht es ja auch ohne.
     
  8. fl1tz

    fl1tz Grünschnabel

    Es gibt hier einen interessanten Vorschlag - aber ich brauche leider die Funktion.
     
  9. Mr.bZ

    Mr.bZ Grünschnabel

    Guten Morgen,

    Mich würde mal interessieren, ob und vor allem "Wie" Du diese Aufgabe gelöst hast!

    Ich hänge genauso wie Du schon eine Ewigkeit an dieser Aufgabe und bekomme "das" mit den "options- und select- Elementen" innerhalb der Funktion einfach nicht hin!!! Trotz Recherche im Netz, Lehrbüchern etc.

    Der Beitrag aus dem PHP-Forum von TessaKavanagh ist echt Super, nur leider bekomme ich es trotz der „lockerflockigen“ Beschreibung nicht zum laufen!

    Also fl1tz, hau raus und „Danke“ für jede Info die Mich verstehen lässt!
     
  10. fl1tz

    fl1tz Grünschnabel

    Moment, kommt noch heute.
     
  11. fl1tz

    fl1tz Grünschnabel

    Ich 'haue' das mal als nicht ganz perfekten Vorschlag 'raus'. Und freue mich auf Verbesserungsvorschläge.

    HTML:
    1. <!DOCTYPE html>
    2. <meta charset="utf-8" />
    3. </head>
    4. <?php
    5. function flexI($id, $name, $options, $multiple)
    6. {
    7.    echo "<label for='$id'>$name</label>\n";
    8.     echo "<select id='$id' name='$name' ";    
    9.        if ($multiple)
    10.        echo "size=".count($options). "multiple";
    11.        echo ">\n";
    12.    
    13.         for ($m=0; $m < count($options); $m++)  
    14.        {
    15.        echo "<option value='$options[$m]'>$options[$m]</option>\n";
    16.         }
    17.     echo "</select>\n";  
    18. }
    19. ?>
    20. <form action = "deinPfad.php" method = "post">
    21. <p>
    22. <?php
    23. flexI("flex1", "Bluse an: ", array("blaue Bluse", "rote Bluse", "gelbe Bluse", "ohne Bluse"), false);
    24. ?>
    25. </p>
    26. <p>
    27. <?php
    28. flexI("flex2", "Finger ab: ", array("Daumen", "Zeigefinger", "Ringfinger", "Mittelfinger", "kleiner Finger"), true);
    29. ?>
    30. </p>
    31. <input type="submit" value="senden">
    32. </form>
    33. </body>
    34. </html>
     
    sheel gefällt das.
Die Seite wird geladen...