Hallo,
ich habe (Quelltext unten)
Dieser berechnet den Preis einer Eingabe laufend.
Am Ende soll alles per post Anweisung an eine php-Datei rechnung-post.php übergeben werden.
Ohne javascript Berechnung funktioniert es, mit wird nichts mehr an das Formular übergeben sondern in der Browserzeile erscheint:
http://website.de/neu.html?Anzahl01=4&Betrag01=23%2C80&Anzahl02=5&Betrag02=41%2C50&Summe=58%2C77&B1=Abschicken
Also wie bei einer get Anweisung.
Offensichtlich verträgt sich javascript mit PHP nicht?
<script type="text/javascript" language="JavaScript">
Preis01 = 5.95;
Preis02 = 8.30;
// legt Dezimalstellen fest und wandelt das Dezimalzeichen . = ,
function Dezimalstellen(num) {
if(isNaN(num))
num = "0";
Vorzeichen = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
cents = num%100;
num = Math.floor(num/100).toString();
if(cents<10)
cents = "0" + cents;
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
num = num.substring(0,num.length-(4*i+3))+','+
num.substring(num.length-(4*i+3));
return (((Vorzeichen)?'':'-') + num + ',' + cents);
}
function startCalc(){
interval = setInterval("calc()",1);
}
function calc(){
Wert01 = (Preis01 * document.autoSumForm.Anzahl01.value);
Wert02 = (Preis02 * document.autoSumForm.Anzahl02.value);
document.autoSumForm.Betrag01.value = Dezimalstellen(Wert01);
document.autoSumForm.Betrag02.value = Dezimalstellen(Wert02);
zwischen = (Wert01 * 1) + (Wert02 * 1);
if (zwischen <= 20)
zwischen= (zwischen+2.3) // 1. + Versand
else
if (zwischen >= 25)
zwischen = (zwischen*0.9) // 2. minus Rabatt
else
; // 3. Alternative: kein Rabatt
// nachfolgende Befehle
ergebnis = Dezimalstellen(zwischen)
document.autoSumForm.Summe.value = ergebnis;
}
function stopCalc(){
clearInterval(interval);
}
// End -->
</script>
<form name="autoSumForm">
<form action="rechnung-post.php" method="post">
<table cellspacing="2" cellpadding="10" border="0">
<tr><td>Artikel</td><td>Stückzahl</td><td>Einzelpreis</td><td>Summe</td></td></tr>
<tr><td>artikel1</td><td><input size="2" type=text name="Anzahl01" value="" onFocus="startCalc();" onBlur="stopCalc();"><br></td><td>5,95 Euro</td><td><input size="8" readonly type=text name="Betrag01" value="" > Euro<br></td></tr>
<tr><td>artikel2</td><td><input size="2" type=text name="Anzahl02" value="" onFocus="startCalc();" onBlur="stopCalc();"><br></td><td>8,30 Euro</td><td><input size="8" readonly type=text name="Betrag02" value=""> Euro<br></td></tr>
<tr><td>Gesamtsumme</td><td> </td><td> </td><td><input size="8" readonly type=text name="Summe"> Euro<br></td></tr>
</table>
<input type="submit" value="Abschicken" name="B1"></td>
<td>
<input type="reset" value="Zurücksetzen" name="B2"></td>
</tr>
</table>
</form>
</form>
</form>
<br><br>