Schleife abhängig von input text
e_muc
- php
Ich suche nach einer Möglichkeit eine Schleife in Abhängigkeit von einer Textfeldeingabe auszuführen (möglichst schon vor dem Submit-Button). Wer kann mir helfen?
In etwa soll es so aussehen :
<html>
<head>
<title>Formular-Test</title>
</head>
<body>
<form name="form1" action="test7.php">
<p>
<input type='Text' name='Anz_Fahrzeuge' value='0' >
</p></form>
<?PHP
// Hier soll überprüft werden, wie viele Fahrzeuge im Haushalt vorhanden sind und abhängig davon sollen x-mal die Felder dazu eingefügt werden
if ( $Anz_Fahrzeuge == '0')
{
echo "kein Fahrzeug";
}
else
{
for (n$=1; $n < $Anz_Fahrzeuge+1; $n++)
{
echo "
<p>
<select name="auswahl"$Anz_Fahrzeuge size="3" multiple>
<option value=1>Benziner</option>
<option value=2>Diesel</option>
<option value=3>Gas</option>
</select>
</p>";
}}
?>
<p>
<input type="submit" name="submit" value="submit">
</p>
</body>
</html>
Hi.
Du könntest die Abfrage wieviele Autos vorhanden sind als ersten Schritt vor das übrige Formular setzen, da gäbe es dann aber schon einen Submit-Button. Alternativ ist natürlich eine Regelung mit Javascript möglich.
Leg in das Inputfeld 'Anz_Fahrzeuge' ein onChange oder onKeyup Event. Dieses Event ruft eine Javascriptfunktion auf, welche dann je nach Eingabe die Anzahl an Select-Boxen einblendet.
1. Du könntest eine Quick and Dirty-Lösung schaffen indem zu meinetwegen 10 Selectboxen fest "einbaust", welche über die CSS-Eigenschaft display:none ausgeblendet sind. Je nach Anzahl lässt du dann wieder welche mit display:inline oder block (je nachdem) einblenden.
2. Eine andere Möglichkeit wäre, dass du eine Selectbox fest "einbaust" und diese dann mit JS klonst.
Dabei hilft dir das node-Objekt und cloneNode
< http://de.selfhtml.org/javascript/objekte/node.htm#clone_node>
Du müsstest dann natürlich darauf achten, dass du die Namen der geklonten Selectboxen änderst, sonst heißen sie ja alle gleich.
3. Eine weitere Möglichkeit wäre, dass du die Selectboxen komplett mit Javascript generierst. Dabei helfen dir createElement < http://de.selfhtml.org/javascript/objekte/document.htm#create_element> und appendChild http://de.selfhtml.org/javascript/objekte/node.htm#append_child
Versuch dich da mal durchzuhangeln ... dann bekommst du das auch hin.
mfg
Knusperklumpen