Hallo an die Javascript/Ajax-Könner,
folgendes Problem bekomme ich selbst nicht gelöst, woran ich mittlerweile zahllose Stunden sitze
Ich lasse mittel Ajax ein Formular (Kostenangebot) aus einer Datenbank füllen, darunter auch reichlich Input-Felder mit Preisen. Diese haben bekannter Weise das Format 12,34, sprich 2 Nachkommastellen. In der Datenbank selbst ist das richtige Format hinterlegt (mit Komma, nicht mit Punkt). Wenn ich mittels Ajax jetzt einen Preis in ein Input-Feld setze, zeigt es keine Nachkommastellen an. Daraus resultiert, dass das anhängige Javascript den Gesamtpreis nicht richtig addiert. Angenommen ich habe einen Preis von 15,50€ und Ajax lädt nur 15€ nach, stimmt am Ende der Gesamtpreis ja nicht mehr. Trage ich es manuell ein, funktioniert das Additionsscript fehlerfrei. Sämtliche Versuche mit .toFixed(2) sind bislang gescheitert. Anbei mal paar Codeschnipsel aus meienm Script:
Auszug aus dem Formular was mittels Ajax gefüllt wird:
<form name="formu" id="formu" action="auftragerstellen.php" method="post">
...
<div id="posten">
<div class='form-group offset-md-1 col-md-1'>
<input type='text' class='form-control' id='code' name='code' placeholder='Art. 1' />
</div>
<div class='form-group col-md-5 offset-md-12'>
<input type='text' class='form-control' readonly id='bezeichnung1' name='bezeichnung1' placeholder='Bezeichnung'>
</div>
<div class='form-group offset-md-1 col-md-2'>
<input type='text' class='form-control' id='anzahl1' name='anzahl1' placeholder='Anzahl'>
</div>
<div class='form-group col-md-2 offset-md-12'>
<input type='text' readonly id='preisnetto1' class='form-control' name='preisnetto1' placeholder='Preis netto'>
</div>
<div class='form-group col-md-2 offset-md-12'>
<input type='text' readonly id='preisnettogesamt1' class='form-control' name='preisnettogesamt1' placeholder='Preis netto gesamt'>
</div>
</div>
...
</form>
Alles anzeigen
Auszug des Ajaxscripts:
...
<script>
$(document).ready(function(){
$('#angebotsnummer').on("keyup",function(){
var angebotsnummer = $("#angebotsnummer").val();
if(angebotsnummer==="")
{
$("#error").html("Feld verpflichtend");
$("#kundendaten").trigger("reset");
return false;
}
else
{
$("#error").html("");
$.ajax({
url:"stmmactionangebot.php",
method:"POST",
data: {angebotsnummer:angebotsnummer},
success:function(data)
{
var fdata=$.trim(data);
var sp=fdata.split(",");
$("#kundennummer").val(sp[0]);
$("#anrede").val(sp[1]);
$("#vorname").val(sp[2]);
$("#nachname").val(sp[3]);
$("#strasse").val(sp[4]);
$("#hausnummer").val(sp[5]);
$("#postleitzahl").val(sp[6]);
$("#ort").val(sp[7]);
$("#auftragsname").val(sp[8]);
$("#code").val(sp[10]);
$("#bezeichnung1").val(sp[11]);
$("#anzahl1").val(sp[12]);
$("#preisnetto1").val(sp[13]);
$("#preisnettogesamt1").val(sp[14]);
...
}
});
}
});
});
</script>
Alles anzeigen
Javascript was dann nicht mehr greift, bzw. falsch rechnet durch fehlende Nachkommastellen:
<script>
setInterval(myInterval1, 500)
function myInterval1() {
zaehler1(document.getElementById('formu'));
}
</script>
<script>
function zaehler1() {
var WertA = document.formu.anzahl1.value.replace(/,/g, ".");
var WertB = document.formu.preisnetto1.value.replace(/,/g, ".");
summe=WertA*1 * WertB*1;
document.formu.preisnettogesamt1.value = summe.toFixed(2).replace(".",",");
}
</script>
Alles anzeigen
Die stmmactionangebot.php:
<?php
session_start();
$connect = mysqli_connect("localhost", "*****", "******", "office");
$angebotsnummer = $_POST["angebotsnummer"];
$code = $_POST["angebotsnummer"];
$query = "SELECT * FROM angebote WHERE angebotsnummer = $angebotsnummer ";
$result = mysqli_query($connect, $query);
while($erg = mysqli_fetch_assoc($result))
echo $erg["kundennummer"] . "," . $erg["anrede"] . "," . $erg["vorname"] . "," . $erg["nachname"] . "," . $erg["strasse"] . "," . $erg["hausnummer"] . "," . $erg["postleitzahl"] . "," . $erg["ort"] . "," . $erg["angebotsname"] . "," . $erg["datum"] . "," . $erg["code"] . "," . $erg["bezeichnung1"] . "," . $erg["anzahl1"] . "," . $erg["preisnetto1"] . "," . $erg["preisnettogesamt1"] . "," . $erg["code2"] . "," . $erg["bezeichnung2"] . "," . $erg["anzahl2"] . "," . $erg["preisnetto2"] . "," . $erg["preisnettogesamt2"] . "," . $erg["code3"] . "," . $erg["bezeichnung3"] . "," . $erg["anzahl3"] . "," . $erg["preisnetto3"] . "," . $erg["preisnettogesamt3"] . "," . $erg["code4"] . "," . $erg["bezeichnung4"] . "," . $erg["anzahl4"] . "," . $erg["preisnetto4"] . "," . $erg["preisnettogesamt4"] . "," . $erg["code5"] . "," . $erg["bezeichnung5"] . "," . $erg["anzahl5"] . "," . $erg["preisnetto5"] . "," . $erg["preisnettogesamt5"] . "," . $erg["code6"] . "," . $erg["bezeichnung6"] . "," . $erg["anzahl6"] . "," . $erg["preisnetto6"] . "," . $erg["preisnettogesamt6"] . "," . $erg["code7"] . "," . $erg["bezeichnung7"] . "," . $erg["anzahl7"] . "," . $erg["preisnetto7"] . "," . $erg["preisnettogesamt7"] . "," . $erg["code8"] . "," . $erg["bezeichnung8"] . "," . $erg["anzahl8"] . "," . $erg["preisnetto8"] . "," . $erg["preisnettogesamt8"] . "," . $erg["code9"] . "," . $erg["bezeichnung9"] . "," . $erg["anzahl9"] . "," . $erg["preisnetto9"] . "," . $erg["preisnettogesamt9"] . "," . $erg["code10"] . "," . $erg["bezeichnung10"] . "," . $erg["anzahl10"] . "," . $erg["preisnetto10"] . "," . $erg["preisnettogesamt10"] . "," . $erg["code11"] . "," . $erg["bezeichnung11"] . "," . $erg["anzahl11"] . "," . $erg["preisnetto11"] . "," . $erg["preisnettogesamt11"] . "," . $erg["code12"] . "," . $erg["bezeichnung12"] . "," . $erg["anzahl12"] . "," . $erg["preisnetto12"] . "," . $erg["preisnettogesamt12"] . "," . $erg["code13"] . "," . $erg["bezeichnung13"] . "," . $erg["anzahl13"] . "," . $erg["preisnetto13"] . "," . $erg["preisnettogesamt13"] . "," . $erg["code14"] . "," . $erg["bezeichnung14"] . "," . $erg["anzahl14"] . "," . $erg["preisnetto14"] . "," . $erg["preisnettogesamt14"] . "," . $erg["code15"] . "," . $erg["bezeichnung15"] . "," . $erg["anzahl15"] . "," . $erg["preisnetto15"] . "," . $erg["preisnettogesamt15"] . "," . $erg["code16"] . "," . $erg["bezeichnung16"] . "," . $erg["anzahl16"] . "," . $erg["preisnetto16"] . "," . $erg["preisnettogesamt16"] . "," . $erg["code17"] . "," . $erg["bezeichnung17"] . "," . $erg["anzahl17"] . "," . $erg["preisnetto17"] . "," . $erg["preisnettogesamt17"] . "," . $erg["code18"] . "," . $erg["bezeichnung18"] . "," . $erg["anzahl18"] . "," . $erg["preisnetto18"] . "," . $erg["preisnettogesamt18"] . "," . $erg["code19"] . "," . $erg["bezeichnung19"] . "," . $erg["anzahl19"] . "," . $erg["preisnetto19"] . "," . $erg["preisnettogesamt19"] . "," . $erg["code20"] . "," . $erg["bezeichnung20"] . "," . $erg["anzahl20"] . "," . $erg["preisnetto20"] . "," . $erg["preisnettogesamt20"] . "," . $erg["ergebnis"] . "," . $erg["mehrwertsteuer"] . "," . $erg["prozentsatz"] . "," . $erg["preisbruttogesamt"] . "," . $erg["sonstiges"];
?>
Alles anzeigen
Kurz zur Erklärung...ich lasse mir mittels eines zuvor angelegten Angebots/Kostenvoranschlag über die Angebotsnummer mittels ajax durch Eingabe der Angebotsnummer alles in den Auftrag laden.
Es funktioniert soweit ja alles...bis auf das Problem der Nachkommastelle. Gebe ich es manuell ein, funktioniert alles tadellos. Hat eventuell jemand einen Ratschlag was ich übersehen habe?