Rechnen mit JS und PHP

Registrierer

Erfahrenes Mitglied
Ich möchte, das die Eingabe des Feldes "zins" mit einem vorgegebenen Wert addiert und nach Verlassen des Feldes in das Feld "open" eingetragen wird.

Dies ist mein Quelltext bisher ohne Berechnung.

HTML:
<input type="text" id="zins" name="zins" onblur="document.getElementById('open').value=this.value">
<input type="text" name="open" id="open" value="">

Aber die Berechnung klappt leider nicht.

PHP:
<?
$zahl = '104,55';
?>
<input type="text" id="zins" name="zins" onblur="document.getElementById('open').value=this.value+number(<? echo $zahl; ?>)">
<input type="text" name="open" id="open" value="">

wie macht man das richtig?
 
Dezimalzahlen mit Punkt trennen, nicht mit Komma.

Edit: Außerdem wird das "+" nicht als Addition sondern als Konkatenation interpretiert, da der linke Operand ein String ist.
 
hab es jetzt vereinfacht mit

<input type="text" id="zins" name="zins" onblur="document.getElementById('open').value=this.value+number(104.55)">
<input type="text" name="open" id="open" value="">

versucht.
Jetzt gibt es gar keine Reaktion und die Fehlerkonsole sagt auch nichts
 
die Fehlerkonsole sagt auch nichts

Dann gib die mal zur Reparatur.

Error: number is not defined


HTML:
<input type="text" id="zins" name="zins" onblur="document.getElementById('open').value = parseInt(this.value, 10) + 104.55">
<input type="text" name="open" id="open" value="">

Das "Number" oder "parseInt" bei dem rechten Operanden kannst du dir sparen, weil das ja kein String ist. Auch nicht wenn du ihn per PHP ausgibst (dann sind ja keine Anführungsstriche mehr drumherum).
 
OK, wenn ich

value=this.value+104.55

benutze, wird der String nur verlängert.
Gebe ich eine 5 ein, erscheint im Feld open 5104.55.
Es findet also keine Berechnung statt.
 
Sag ich ja :-D
War das jetzt eine Frage? Hab ja in meinem Code noch ein parseInt drumherum gepackt.
 
Also nochmal im Klartext:

Außerdem wird das "+" nicht als Addition sondern als Konkatenation interpretiert, da der linke Operand ein String ist.

Linker Operand String -> keine Addition sondern aneinander hängen von Strings.

Lösung:

HTML:
<input type="text" id="zins" name="zins" onblur="document.getElementById('open').value = parseInt(this.value, 10) + 104.55">

Nochmal mit der Lupe

onblur="document.getElementById('open').value = parseInt(this.value, 10) + 104.55"
 
Zurück