Hallo,
ich möchte gerne Textfelder in einen Formular mit einen Array ausstatten da ich das Formular per PHP erstelle. Die Anzahl der Textfelder ist dynamisch. Ein Javascript soll das erste und das zweite Textfeld in einer Zeile zusammen Rechnen und im letzten Textfeld in der Zeile ausgeben. Wenn ich das ohne [], und alle anders bennen, klappt das auch.
Wie könnte ich das Lösen, mit einen Array. Das Array wird später mit PHP ausgelesen und die Wert in eine Datenbank geschrieben.
Gruß
Stephan
<html>
<script language="JavaScript" type="text/JavaScript" >
function numerisch(feld)
{
if(feld.value == "")
return
// Feld analysieren
var test = parseFloat(feld.value)
// OK? Dann zurueck!
if(!isNaN(test))
{
// Ergebnis darstellen
feld.value = test
return
}
// Fehlermeldung
alert("Bitte nur numerische Angaben!")
// Eingabe selektieren und Eingabefokus setzen
feld.select()
feld.focus()
}
function rechne(feld, eingabe1, eingabe2, ausgabe)
{
with(feld.form)
{
var wert1 = parseFloat(eingabe1.value)
var wert2 = parseFloat(eingabe2.value)
// Werte in Feld1 und Feld2 numerisch?
if(isNaN(wert1) || isNaN(wert2))
return
// Ergebnis berechnen, wenn beide Felder gefuellt sind
ausgabe.value = (eingabe1.value == "" ||
eingabe2.value == "") ?
"" :
wert1 * wert2
}
}
</script>
<body>
<form>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td><input type="text" name="meinFeld[1][1]"
onChange="numerisch(this); rechne(this,meinFeld[1][1],meinFeld[1][2],meinFeld[1][3])"></td>
<td><input type="text" name="meinFeld[1][2]"
onChange="numerisch(this); rechne(this,meinFeld[1][1],meinFeld[1][2],meinFeld[1][3])"></td>
<td><input type="text" name="meinFeld[1][3]" readonly></td>
</tr>
<tr>
<td><input type="text" name="meinFeld[2][1]"
onChange="numerisch(this); rechne(this,meinFeld[2][1],meinFeld[2][2],meinFeld[2][3])"></td>
<td><input type="text" name="meinFeld[2][2]"
onChange="numerisch(this); rechne(this,meinFeld[2][1],meinFeld[2][2],meinFeld[2][3])"></td>
<td><input type="text" name="meinFeld[2][3]" readonly></td>
</tr>
</table>
</form>
</body>
</html>