login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Waarde mee geven naar PHP werkt niet

Offline GroundZero - 06/03/2012 15:48 (laatste wijziging 06/03/2012 16:00)
Avatar van GroundZeroLid 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:

  1. <script language="javascript">
  2. function roundNumber(num, dec) {
  3. var result = Math.round(num*Math.pow(10, dec)) / Math.pow(10, dec);
  4. return result;
  5. }
  6.  
  7. function calculate(){
  8. // als er gekozen is voor een korting van een x percentage
  9. if(document.getElementById('optie1').checked == true)
  10. {
  11. // disablen van andere checkbox
  12. document.getElementById('optie2').disabled = true;
  13.  
  14. // alles berekenen
  15. var procenten = "1.1" + "<?=$fetch['kosten_samen']?>";
  16. var korting = roundNumber(parseFloat(<?=number_format($totaal, 2)?>) / procenten, 2);
  17. var exclusief = roundNumber(korting / 1.19, 2);
  18. var btwbedrag = roundNumber(korting - exclusief, 2);
  19.  
  20. // update de bedragen
  21. document.getElementById('aSubTot').innerHTML = korting;
  22. document.getElementById('aSubInc').innerHTML = korting;
  23. document.getElementById('aSubExc').innerHTML = exclusief;
  24. document.getElementById('aBtw').innerHTML = btwbedrag;
  25.  
  26. // update de geheime velden zodat we de prijzen in de mail kunnen verwerken
  27. document.getElementById('hTotaalSub').innerHTML = korting;
  28. document.getElementById('hTotaalInc').innerHTML = korting;
  29. document.getElementById('hTotaalExc').innerHTML = exclusief;
  30. document.getElementById('hTotaalBtw').innerHTML = btwbedrag;
  31.  
  32. alert(document.getElementById('hTotaalBtw').innerHTML);
  33. }
  34.  
  35. // als er gekozen is voor een korting van een x percentage
  36. if(document.getElementById('optie2').checked == true)
  37. {
  38. // disablen van andere checkbox
  39. document.getElementById('optie2').disabled = true;
  40.  
  41. // totaal korting bedrag berekenen
  42. var eenmankorting = parseFloat(<?=$persTot?>);
  43.  
  44. // ophalen van huidige bedragen
  45. var totaalexc = document.getElementById('aSubExc').innerHTML;
  46. var totaalinc = document.getElementById('aSubInc').innerHTML;
  47. var btwbedrag = document.getElementById('aBtw').innerHTML;
  48. var subtotaal = document.getElementById('aSubTot').innerHTML;
  49.  
  50. // update de huidige bedragen
  51. document.getElementById('aSubTot').innerHTML = roundNumber((parseFloat(subtotaal) - parseFloat(eenmankorting)), 2);
  52. document.getElementById('aSubInc').innerHTML = roundNumber((parseFloat(subtotaal) - parseFloat(eenmankorting)), 2);
  53. document.getElementById('aSubExc').innerHTML = roundNumber((document.getElementById('aSubTot').innerHTML / 1.19), 2);
  54. document.getElementById('aBtw').innerHTML = (document.getElementById('aSubTot').innerHTML - document.getElementById('aSubExc').innerHTML);
  55.  
  56. // update de geheime velden zodat we de prijzen in de mail kunnen verwerken
  57. document.getElementById('hTotaalSub').innerHTML = roundNumber((parseFloat(subtotaal) - parseFloat(eenmankorting)), 2);
  58. document.getElementById('hTotaalInc').innerHTML = roundNumber((parseFloat(subtotaal) - parseFloat(eenmankorting)), 2);
  59. document.getElementById('hTotaalExc').innerHTML = roundNumber((document.getElementById('aSubTot').innerHTML / 1.19), 2);
  60. document.getElementById('hTotaalBtw').innerHTML = (document.getElementById('aSubTot').innerHTML - document.getElementById('aSubExc').innerHTML);
  61. }
  62. }
  63. </script>


De code waar ik de gegevens in mijn PDF parse:

  1. $pdf->Cell(100, 6, '', 0, 0);
  2. $pdf->Cell(66, 6, 'Subtotaal excl. 19% BTW:', 0, 0);
  3. $pdf->Cell(20, 6, $_POST['hTotaalExc'], 0, 1);
  4.  
  5. $pdf->Cell(100, 6, '', 0, 0);
  6. $pdf->Cell(66, 6, 'Subtotaal incl. 19% BTW:', 0, 0);
  7. $pdf->Cell(20, 6, $_POST['hTotaalInc'], 0, 1);
  8.  
  9. $pdf->Cell(100, 6, '', 0, 0);
  10. $pdf->Cell(66, 6, 'BTW bedrag:', 0, 0);
  11. $pdf->Cell(20, 6, $_POST['hTotaalBtw'], 0, 1);
  12.  
  13. $pdf->Cell(100, 6, '', 0, 0);
  14. $pdf->Cell(66, 6, 'Subtotaal:', 0, 0);
  15. $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:

  1. <input type="hidden" name="hTotaalInc" id="hTotaalInc" value="" />
  2. <input type="hidden" name="hTotaalExc" id="hTotaalExc" value="" />
  3. <input type="hidden" name="hTotaalSub" id="hTotaalSub" value="" />
  4. <input type="hidden" name="hTotaalBtw" id="hTotaalBtw" value="" />

7 antwoorden

Gesponsorde links
Offline vinTage - 06/03/2012 15:57 (laatste wijziging 06/03/2012 16:00)
Avatar van vinTage Nieuw lid Je hebt het overal over innerHTML, maar dat kan je niet 'posten', daarvoor gebruik je value()

  1. // update de geheime velden zodat we de prijzen in de mail kunnen verwerken
  2.  
  3. //moet een input type="hidden' zijn
  4. /*
  5.   <input name="hTotaalSub" type="hidden" />
  6. */
  7.  
  8. document.getElementById('hTotaalSub').value = roundNumber((parseFloat(subtotaal) - parseFloat(eenmankorting)), 2);
Offline GroundZero - 06/03/2012 16:00 (laatste wijziging 06/03/2012 16:06)
Avatar van GroundZero Lid ow?... even proberen... 

EDIT:

Heb dit ervan gemaakt:
[codedocument.getElementById('hTotaalSub').value = korting;
document.getElementById('hTotaalInc').value = korting;
document.getElementById('hTotaalExc').value = exclusief;
document.getElementById('hTotaalBtw').value = btwbedrag;[/code]

Ik zie wel dat de prijzen aangepast worden, maar nog steeds een lege "$_POST" 

Overigens:

Ik heb overal een SPAN element, daarom gebruik in innerHTML. De enigste input fields zijn die 4 bovenstaande ;)

Anyways, heb de "hidden" naar "text" gezet en zie dat ze van leeg naar een waarde toe gaan, maar nog blijft de POST leeg...

Als het makkelijker is kan ik wel mijn hele code posten? is alleen wel een lap tekst 
Offline vinTage - 06/03/2012 16:05
Avatar van vinTage Nieuw lid Bij een span gebruik je wel innerHTML, maar bij inputs value.
Offline GroundZero - 06/03/2012 16:06
Avatar van GroundZero Lid Yes klopt, maar ik heb nu in plaats van HIDDEN even TEXT gedaan. Ze zijn leeg, na het starten van de JScript worden ze netjes met een float gevuld, maar de POST is nog steeds leeg.
Offline vinTage - 06/03/2012 16:07 (laatste wijziging 06/03/2012 16:09)
Avatar van vinTage Nieuw lid je roept je php ook aan na posten etc ?

kun je simpel testen door default values mee te geven:
  1. <input type="hidden" name="hTotaalInc" id="hTotaalInc" value="aap" />
  2. <input type="hidden" name="hTotaalExc" id="hTotaalExc" value="noot" />
  3. <input type="hidden" name="hTotaalSub" id="hTotaalSub" value="vuur" />
  4. <input type="hidden" name="hTotaalBtw" id="hTotaalBtw" value="boom" />
Bedankt door: GroundZero
Offline GroundZero - 06/03/2012 16:11 (laatste wijziging 06/03/2012 16:18)
Avatar van GroundZero Lid Zal eens proberen 
Dankjewel voor zover vinTage!!

Hier mijn hele code overigens:

http://plaatscode.be/141683/

P.S.

De JScript word uitgevoerd VOOR de pagina gesubmit word.
Dus de waardes van de (hidden) text field word aangepast en DAAR NA word het formulier gesubmit... PHP zou dan toch de waardes moeten kunnen lezen?

EDIT:

Werkt nu prima in eens... misschien wou de browser nie goed verversen? wel raar heb 100x op ALT+F5 gedrukt haha...

Thanks voor de hulp!
Offline vinTage - 06/03/2012 16:23 (laatste wijziging 06/03/2012 16:24)
Avatar van vinTage Nieuw lid Komt toch door die value versus innerHTML hoor 

en het moet ctrl F5 zijn 
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.224s