Dynamische Funktion / 2 Dropdownmenüs

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

HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<?php
function flexI($id, $name, $options, $multiple)
{
    echo "<label for='$id'>$name</label>\n";
    echo "<select id='$id' name='$name' ";    
        if ($multiple)
        echo "size=".count($options). "multiple";
        echo ">\n";
   
        for ($m=0; $m < count($options); $m++)   
        {
        echo "<option value='$options[$m]'>$options[$m]</option>\n";
        }
    echo "</select>\n";   
}
?>
<form action = "deinPfad.php" method = "post">
<p>
<?php
flexI("flex1", "Bluse an: ", array("blaue Bluse", "rote Bluse", "gelbe Bluse", "ohne Bluse"), false);
?>
</p>
<p>
<?php
flexI("flex2", "Finger ab: ", array("Daumen", "Zeigefinger", "Ringfinger", "Mittelfinger", "kleiner Finger"), true);
?>
</p>
<input type="submit" value="senden">
</form>
</body>
</html>
 
Also, was haben wir ...

1.
1 Formular <form></form>, darin 2 Dropdowns: <select></select>, (eins der Dropdowns kann/soll aufgeklappt sein -> if($multiple).

2.
Ich schreibe eine Funktion für die 2 select's, die ich dann im Formular als Dropdowns (hier: als flexI) aufrufe. Und zwar in derselben Datei <form action = "deinPfad.php" method = "post">.

3.
Die Funktion flexI() definiert mittels php die Variablen innerhalb der html - select's (hinter den variblen Label-Bezeichnungen).
Wenn die Auswahl 'multiple' ist (innerhalb des Funktions-Aufrufs flexI() mittels 'true' erklärt), dann ist das Dropdown aufgeklappt -> bei mir ist 'Finger ab:' aufgeklappt (true).
Die option-Elemente werden mittels count($options) im Falle 'false' 'so lange der Vorrat reicht, erst durch den Submit-Button angezeigt.
 
Also, was haben wir ...

1.
1 Formular <form></form>, darin 2 Dropdowns: <select></select>, (eins der Dropdowns kann/soll aufgeklappt sein -> if($multiple).

2.
Ich schreibe eine Funktion für die 2 select's, die ich dann im Formular als Dropdowns (hier: als flexI) aufrufe. Und zwar in derselben Datei <form action = "deinPfad.php" method = "post">.

3.
Die Funktion flexI() definiert mittels php die Variablen innerhalb der html - select's (hinter den variblen Label-Bezeichnungen).
Wenn die Auswahl 'multiple' ist (innerhalb des Funktions-Aufrufs flexI() mittels 'true' erklärt), dann ist das Dropdown aufgeklappt -> bei mir ist 'Finger ab:' aufgeklappt (true).
Die option-Elemente werden mittels count($options) im Falle 'false' 'so lange der Vorrat reicht, erst durch den Submit-Button angezeigt.
Ich 'haue' das mal als nicht ganz perfekten Vorschlag 'raus'. Und freue mich auf Verbesserungsvorschläge.

HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<?php
function flexI($id, $name, $options, $multiple)
{
    echo "<label for='$id'>$name</label>\n";
    echo "<select id='$id' name='$name' ";   
        if ($multiple)
        echo "size=".count($options). "multiple";
        echo ">\n";
  
        for ($m=0; $m < count($options); $m++)  
        {
        echo "<option value='$options[$m]'>$options[$m]</option>\n";
        }
    echo "</select>\n";  
}
?>
<form action = "deinPfad.php" method = "post">
<p>
<?php
flexI("flex1", "Bluse an: ", array("blaue Bluse", "rote Bluse", "gelbe Bluse", "ohne Bluse"), false);
?>
</p>
<p>
<?php
flexI("flex2", "Finger ab: ", array("Daumen", "Zeigefinger", "Ringfinger", "Mittelfinger", "kleiner Finger"), true);
?>
</p>
<input type="submit" value="senden">
</form>
</body>
</html>
Hallo fl1tz
ich habe mir deinen Quelltext kopiert und im Firefox gestartet, es werden keine Listenfelder angezeigt.

Was für Fehler sind mir jetzt unterlaufen? Ich kann den Fehler nicht erkennen. Vielleicht hast du noch einige Möglichkeiten.
 
Hallo @Kenney
Du schreibst: "im Firefox gestartet" - wie hast Du die Seite denn geöffnet? Da sie PHP-Code enthält, wird sie nur funktionieren, wenn sie auf einem Webserver, der PHP unterstützt, läuft.
 
Hallo @Kenney
Du schreibst: "im Firefox gestartet" - wie hast Du die Seite denn geöffnet? Da sie PHP-Code enthält, wird sie nur funktionieren, wenn sie auf einem Webserver, der PHP unterstützt, läuft.

Hallo Sempervivum, ich habe den Quelltext in Notepad++ eingefügt und unter text.php gespeichert, dieses mit Rechtsklick und öffnen mit Firefox. Es ist möglich, das hier der Fehler beim Firefox liegt.
 
Hallo Kenney,
nein, der Fehler liegt nicht im Firefox. Wenn Du die Datei so geöffnet hast, wie Du beschreibst, trifft das genau meine Vermutung. Eine PHP-Datei kannst Du so nicht öffnen sondern Du brauchst einen Webserver, der PHP unterstützt. Falls Du noch keinen hast, dann besorge dir Webspace bei einem Provider oder installiere einen lokalen Webserver wie XAMPP.
 
Hallo Kenney,
nein, der Fehler liegt nicht im Firefox. Wenn Du die Datei so geöffnet hast, wie Du beschreibst, trifft das genau meine Vermutung. Eine PHP-Datei kannst Du so nicht öffnen sondern Du brauchst einen Webserver, der PHP unterstützt. Falls Du noch keinen hast, dann besorge dir Webspace bei einem Provider oder installiere einen lokalen Webserver wie XAMPP.

Hallo Sempervivum,

mein Fehler, ich bin in einer VMware-Umgebung und nutze XAMPP, da habe ich es auch getestet.
 
Zurück