Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP-Funktion Dynamische Auswahlliste

Einklappen

Neue Werbung 2019

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

  • PHP-Funktion Dynamische Auswahlliste

    Hallo zusammen,
    ich stehe hier vor einer Aufgabe zu der mir einfach keine Lösung einfällt.
    Ich soll in einer PHP Datei eine Funktion erstellen, die dynamisch eine Auswahlliste generiert.
    Das Skript ohne Funktion sieht folgendermaßen aus:

    PHP-Code:
    <form action = "<?php echo $_SERVER["PHP_SELF"]; ?>" method = "post">

    <p>
    <select id='dynamisch1' name='auswahl1'>
    <option value='Brot'>Brot</option>
    <option value='Butter'>Butter</option>
    <option value='Milch'>Milch</option>
    <option value='Eier'>Eier</option>
    </select>
    </p>
    <p>
    <select id='dynamisch2' name='auswahl2' size='5' multiple>
    <option value='Schrauben'>Schrauben</option>
    <option value='Nägel'>Nägel</option>
    <option value='Nadeln'>Nadeln</option>
    <option value='Haken'>Haken</option>
    <option value='Dübel'>Dübel</option>
    </select>
    </p>

    <input type="submit" value="abschicken">

    Die Funktion soll folgendermaßen aussehen:
    function dynAuswahl ($id, $name, array $options, $multiple)

    D.H. ja ich muss in der Funktion das komplette Element Option Value reinpacken.

    Hat da jemand eine Lösung, ich bin total am verzweifeln.
    Id und Name bekomme ich irgendwie noch hin.
    Aber das Option-Element da mit reinzupacken keine Ahnung.

    Danke Schonmal





  • #2
    Bitte beachten: Inserate, Konzepte und Meinungsumfragen

    Wie sieht dein Ansatz/Versuch aus? Wo steckst du konkret?

    PHP_SELF ist jedenfalls eine potientielle Sicherheitslücke daher action-Attribut weglassen (bzw. unter HTML5 komplett weglassen).

    Bitte Codetags hier verwenden. Danke!

    Kommentar


    • #3
      Zitat von Domi28 Beitrag anzeigen
      ...Aufgabe....
      Ich soll in einer PHP Datei eine Funktion erstellen,
      Eben, Du sollst das machen, nicht wir.

      Zitat von Domi28 Beitrag anzeigen
      D.H. ja ich muss in der Funktion das komplette Element Option Value reinpacken.
      Das würde ich schon mal so verstehen.

      Wenn wir dir hier den Code schreiben, was wohl keine Problem sein dürfte, wo bleibt dann da dein Lernerfolg?

      Kommentar


      • #4
        Es braucht doch nicht viel. Für die Funktion $multiple mit "standartwert" FALSE belegen und mit einer if() prüfen ob etwas anderes "übergeben" wurde. Wenn ja $multiple mit dem String "multiple" belegen.

        Das Select kannst du dir ja dann schon zusammenbauen und in eine $result Variable ablegen, anschließend musst du doch nur noch $options in einer foreach() bearbeiten und das Ergebnis an $result anhängen. Zum Abschluss noch das schließende select an $result anhängen und das Ganze von der Funktion als Rückgabewert zurückgeben lassen.

        Ca. 5 - 10 Zeilen Code
        PHP-Code:
        function dynAuswahl ($id$name, array $options$multiple XXXX)
        {
          if(
        XXXXXXXXXXXX)
          {
        XXXXXXXXXX "XXXXXX";}

            foreach(
        XXXXXXXXXXX as $key => $value)
            {
            
        $format '<option XXXXXXXXXXXX</option>';
            
        $result .= sprintf(XXXXXXXXXXXXXX);
            }

        $format '<select XXXXXXXXXXXXXXXXX</select>';
        return 
        $result sprintf(XXXXXXXXXXXX);

        Den Rest deiner Aufgabe solltest du aber schon selber herausfinden. Sonst ist ja überhaupt kein Lerneffekt mehr da Aus diesem "Grundgerüst" lässt sich das ganze jedenfalls wie gewünscht umsetzen.

        Kommentar


        • #5
          Als Ansatz ok. Für eine praktikable Nutzung einer Funktion zum Erzeugen eines kompletten HTML-Selects fehlen jedoch noch einige Aspekte, wie:
          • Kontextwechsel nach HTML behandeln
          • Möglichkeit einer Vorbelegung der Auswahl (Stichwort selected) durch Vorgabe bzw. aus POST/GET
          • Ein Klassenname als Parameter für ein Design per CSS ist zu empfehlen
          • Möglichkeit weitere Attribute wie size per Parameter zu setzen
          Wenn ich die obige Hausaufgabe richtig lese, ist dies jedoch weniger von Interesse.

          Zum Einlesen: Auswahllisten (Selections)

          Kommentar

          Lädt...
          X