Kenney
Mitglied
Hallo Sempervivum,Nachdem ich da weiter drüber reflektiert habe, scheint mir jetzt klar zu sein, wo das Ganze hin gehen soll:
Die vorgegebenen Parameter der Funktion geben einfach die Attribute und Optionen des zu generierenden Select an:
Dann müsste man das select-Tag in die Funktion hinein nehmen:Code:function dynAuswahl( $id, // Die ID des Select $name, // Der Name des Select $options, // Die Optionen des Select $multiple // Gibt an, ob mehrere Optionen auswählbar sind (boolean) ) {
(ungetestet)Code:function dynAuswahl( $id, // Die ID des Select $name, // Der Name des Select $options, // Die Optionen des Select (array) $multiple // Gibt an, ob mehrere Optionen auswählbar sind (boolean) ) { if ($multiple) { $multAttribute = " multiple"; $nameAttribute = $name . '[]'; } else { $multAttribute = ''; $nameAttribute = $name; } $html = '<select id="' . $id . '" name="' . $nameAttribute . '"' . $multAttribute . '>'; foreach ($options as $opt) { // An dieser Stelle kannst Du zusätzlich prüfen, ob die Option // ausgewählt ist und entspr. das Attr. "selected" setzen $html .= '<option value="' . $opt . '">' . $opt . '</option>'; } $html .= '</select>'; return $html; }
Das könntest Du noch verfeinern indem Du das Array mit den Optionen zweidimensional anlegst um value und Text getrennt zu definieren.
an dieser Idee hatte ich auch gearbeitet, nicht so schön wie deine.
Hier, wenn du möchtest könntest du dir meine Version mal angucken:
_____________________________
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8">
<title>dynamische Auswahlliste generieren</title>
</head>
<body>
<?php
function dynAuswahl(string $id, string $name, array $options, $multiple=false)
{
if($multipe != false)
{
$multiple = "multiple";
}
if($multiple)
{
foreach($options as $z)
{
$format="<option value='$options'></options>";
}
$format="<select id='$id' name='$name' size='$z' multiple></select>\n";
}
}
if(!empty($_POST))
{
print_r($_POST);
}
else
{
?>
<form method="post">
<p>
<label for="dynamisch">Einkaufsliste:</label>
</p>
<p>
<select id="dynamisch1" name="auswahl1" size"" multiple>
<option value="Brot"> Brot </option>
<option value="Butter"> Butter </option>
<option value="Milch"> Milch </opton>
<option value="Eier"> Eier </option>
<option value="Käse"> Käse </option>
<option value="Wurst"> Wurst </option>
</select>
</p>
<p>
<select id="dynmisch2" name="auswahl2[]" size="0" multiple>
<option value="Schrauben"> Schrauben </option>
<option value="Nägel"> Nägel </option>
<option value="Haken"> Haken </option>
<option value="Nadeln"> Nadeln </option>
<option value="Dübel"> Dübel </option>
</select>
</p>
<p>
<input type="submit" value="Abschicken">
</p>
</form>
<?php
}
?>
</body>
</html>
______________________________________
Aber dann habe ich den Faden verloren und mein Lehrer hat mir nahe gelegt, dass ich neu Anfangen sollte.
Zuletzt bearbeitet: