Lid |
|
Beste,
ik heb iets raars, hopelijk weet iemand een oplossing.
Ik heb een formulier waarin je enkele prijzen ziet. Je kan vervolgens twee opties kiezen. Beide geven een x-percentage korting om het even makkelijk te zeggen.
De prijzen worden real-time geupdate door middel van Javascript.
Na het updaten word de waarde in een hidden-field geplaatst omdat ik ook een PDF factuur wil genereren.
Alles werkt prima, alleen het enigste punt is het volgende:
Als ik na het wijzigen (zie mijn code) een alert geef, dan word de waarde uit de hidden-field weergegeven.
Dat is prima, maar wanneer ik hem dan met PHP wil parsen in mijn e-mail en PDF factuur, dan zijn ze leeg....
Iemand enig idee?
Mijn javascript om ze te updaten:
<script language="javascript">
function roundNumber(num, dec) {
var result = Math.round(num*Math.pow(10, dec)) / Math.pow(10, dec);
return result;
}
function calculate(){
// als er gekozen is voor een korting van een x percentage
if(document.getElementById('optie1').checked == true)
{
// disablen van andere checkbox
document.getElementById('optie2').disabled = true;
// alles berekenen
var procenten = "1.1" + "<?=$fetch['kosten_samen']?>";
var korting = roundNumber(parseFloat(<?=number_format($totaal, 2)?>) / procenten, 2);
var exclusief = roundNumber(korting / 1.19, 2);
var btwbedrag = roundNumber(korting - exclusief, 2);
// update de bedragen
document.getElementById('aSubTot').innerHTML = korting;
document.getElementById('aSubInc').innerHTML = korting;
document.getElementById('aSubExc').innerHTML = exclusief;
document.getElementById('aBtw').innerHTML = btwbedrag;
// update de geheime velden zodat we de prijzen in de mail kunnen verwerken
document.getElementById('hTotaalSub').innerHTML = korting;
document.getElementById('hTotaalInc').innerHTML = korting;
document.getElementById('hTotaalExc').innerHTML = exclusief;
document.getElementById('hTotaalBtw').innerHTML = btwbedrag;
alert(document.getElementById('hTotaalBtw').innerHTML);
}
// als er gekozen is voor een korting van een x percentage
if(document.getElementById('optie2').checked == true)
{
// disablen van andere checkbox
document.getElementById('optie2').disabled = true;
// totaal korting bedrag berekenen
var eenmankorting = parseFloat(<?=$persTot?>);
// ophalen van huidige bedragen
var totaalexc = document.getElementById('aSubExc').innerHTML;
var totaalinc = document.getElementById('aSubInc').innerHTML;
var btwbedrag = document.getElementById('aBtw').innerHTML;
var subtotaal = document.getElementById('aSubTot').innerHTML;
// update de huidige bedragen
document.getElementById('aSubTot').innerHTML = roundNumber((parseFloat(subtotaal) - parseFloat(eenmankorting)), 2);
document.getElementById('aSubInc').innerHTML = roundNumber((parseFloat(subtotaal) - parseFloat(eenmankorting)), 2);
document.getElementById('aSubExc').innerHTML = roundNumber((document.getElementById('aSubTot').innerHTML / 1.19), 2);
document.getElementById('aBtw').innerHTML = (document.getElementById('aSubTot').innerHTML - document.getElementById('aSubExc').innerHTML);
// update de geheime velden zodat we de prijzen in de mail kunnen verwerken
document.getElementById('hTotaalSub').innerHTML = roundNumber((parseFloat(subtotaal) - parseFloat(eenmankorting)), 2);
document.getElementById('hTotaalInc').innerHTML = roundNumber((parseFloat(subtotaal) - parseFloat(eenmankorting)), 2);
document.getElementById('hTotaalExc').innerHTML = roundNumber((document.getElementById('aSubTot').innerHTML / 1.19), 2);
document.getElementById('hTotaalBtw').innerHTML = (document.getElementById('aSubTot').innerHTML - document.getElementById('aSubExc').innerHTML);
}
}
</script>
<script language="javascript"> function roundNumber(num, dec) { var result = Math.round(num*Math.pow(10, dec)) / Math.pow(10, dec); return result; } function calculate(){ // als er gekozen is voor een korting van een x percentage if(document.getElementById('optie1').checked == true) { // disablen van andere checkbox document.getElementById('optie2').disabled = true; // alles berekenen var procenten = "1.1" + "<?=$fetch['kosten_samen']?>"; var korting = roundNumber(parseFloat( <?=number_format($totaal, 2)?>) / procenten, 2); var exclusief = roundNumber(korting / 1.19, 2); var btwbedrag = roundNumber(korting - exclusief, 2); // update de bedragen document.getElementById('aSubTot').innerHTML = korting; document.getElementById('aSubInc').innerHTML = korting; document.getElementById('aSubExc').innerHTML = exclusief; document.getElementById('aBtw').innerHTML = btwbedrag; // update de geheime velden zodat we de prijzen in de mail kunnen verwerken document.getElementById('hTotaalSub').innerHTML = korting; document.getElementById('hTotaalInc').innerHTML = korting; document.getElementById('hTotaalExc').innerHTML = exclusief; document.getElementById('hTotaalBtw').innerHTML = btwbedrag; alert(document.getElementById('hTotaalBtw').innerHTML); } // als er gekozen is voor een korting van een x percentage if(document.getElementById('optie2').checked == true) { // disablen van andere checkbox document.getElementById('optie2').disabled = true; // totaal korting bedrag berekenen var eenmankorting = parseFloat(<?=$persTot?>); // ophalen van huidige bedragen var totaalexc = document.getElementById('aSubExc').innerHTML; var totaalinc = document.getElementById('aSubInc').innerHTML; var btwbedrag = document.getElementById('aBtw').innerHTML; var subtotaal = document.getElementById('aSubTot').innerHTML; // update de huidige bedragen document.getElementById('aSubTot').innerHTML = roundNumber((parseFloat(subtotaal) - parseFloat(eenmankorting)), 2); document.getElementById('aSubInc').innerHTML = roundNumber((parseFloat(subtotaal) - parseFloat(eenmankorting)), 2); document.getElementById('aSubExc').innerHTML = roundNumber((document.getElementById('aSubTot').innerHTML / 1.19), 2); document.getElementById('aBtw').innerHTML = (document.getElementById('aSubTot').innerHTML - document.getElementById('aSubExc').innerHTML); // update de geheime velden zodat we de prijzen in de mail kunnen verwerken document.getElementById('hTotaalSub').innerHTML = roundNumber((parseFloat(subtotaal) - parseFloat(eenmankorting)), 2); document.getElementById('hTotaalInc').innerHTML = roundNumber((parseFloat(subtotaal) - parseFloat(eenmankorting)), 2); document.getElementById('hTotaalExc').innerHTML = roundNumber((document.getElementById('aSubTot').innerHTML / 1.19), 2); document.getElementById('hTotaalBtw').innerHTML = (document.getElementById('aSubTot').innerHTML - document.getElementById('aSubExc').innerHTML); } } </script>
De code waar ik de gegevens in mijn PDF parse:
$pdf->Cell(100, 6, '', 0, 0);
$pdf->Cell(66, 6, 'Subtotaal excl. 19% BTW:', 0, 0);
$pdf->Cell(20, 6, $_POST['hTotaalExc'], 0, 1);
$pdf->Cell(100, 6, '', 0, 0);
$pdf->Cell(66, 6, 'Subtotaal incl. 19% BTW:', 0, 0);
$pdf->Cell(20, 6, $_POST['hTotaalInc'], 0, 1);
$pdf->Cell(100, 6, '', 0, 0);
$pdf->Cell(66, 6, 'BTW bedrag:', 0, 0);
$pdf->Cell(20, 6, $_POST['hTotaalBtw'], 0, 1);
$pdf->Cell(100, 6, '', 0, 0);
$pdf->Cell(66, 6, 'Subtotaal:', 0, 0);
$pdf->Cell(20, 6, ':::'.$_POST['hTotaalSub'], 0, 1);
$pdf->Cell(100, 6, '', 0, 0); $pdf->Cell(66, 6, 'Subtotaal excl. 19% BTW:', 0, 0); $pdf->Cell(20, 6, $_POST['hTotaalExc'], 0, 1); $pdf->Cell(100, 6, '', 0, 0); $pdf->Cell(66, 6, 'Subtotaal incl. 19% BTW:', 0, 0); $pdf->Cell(20, 6, $_POST['hTotaalInc'], 0, 1); $pdf->Cell(100, 6, '', 0, 0); $pdf->Cell(66, 6, 'BTW bedrag:', 0, 0); $pdf->Cell(20, 6, $_POST['hTotaalBtw'], 0, 1); $pdf->Cell(100, 6, '', 0, 0); $pdf->Cell(66, 6, 'Subtotaal:', 0, 0); $pdf->Cell(20, 6, ':::'.$_POST['hTotaalSub'], 0, 1);
P.S. Ik weet dat mijn JS bagger is, heb er weinig tot nooit mee gewerkt namelijk maar dat is een ander probleem, gaat mij nu even over de factuur dat deze via PHP de waardes niet door krijgt ;)
Overigens, mijn velden heb ik zo gemaakt:
<input type="hidden" name="hTotaalInc" id="hTotaalInc" value="" />
<input type="hidden" name="hTotaalExc" id="hTotaalExc" value="" />
<input type="hidden" name="hTotaalSub" id="hTotaalSub" value="" />
<input type="hidden" name="hTotaalBtw" id="hTotaalBtw" value="" />
<input type="hidden" name="hTotaalInc" id="hTotaalInc" value="" /> <input type="hidden" name="hTotaalExc" id="hTotaalExc" value="" /> <input type="hidden" name="hTotaalSub" id="hTotaalSub" value="" /> <input type="hidden" name="hTotaalBtw" id="hTotaalBtw" value="" />
|