login  Naam:   Wachtwoord: 
Registreer je!
 Forum

winkelwagentje

Offline leendertW - 02/02/2005 22:21 (laatste wijziging 03/02/2005 10:17)
Avatar van leendertWPHP beginner ik heb een winkelwagentjesssyteem en die oet het bijna goed.
Het volgende werkt niet:

Hij update de totaal prijs niet als je het aantal updated!.
Wanneer je het aantal wijzigd en je gaat verder winkelen en je komt weer terug dan staat het aantal weer op 0 dus hij onthoud het niet.
Wat is hier fout aan?
  1. <?php
  2. include("titels.php");
  3. if($_GET['page'] && !$_GET['status']){
  4. $prijs = number_format($prijs, 2, '.', '');
  5. $totaal = number_format($totaal, 2, '.', '');
  6. $totaal= 0;
  7. $aantal= $_SESSION['bestelling'];
  8. ?>
  9. <script language="javascript" type="text/javascript"> var buttons=0; </script>
  10. <?php
  11. if($aantal){
  12. $aantal=array_unique($_SESSION['bestelling']);
  13. ?>
  14. <form action='' method=GET style="display:inline">
  15. <input type='hidden' name=page value='laatstestap'>
  16. <br>
  17. <table class="border" style="width:92%"; height: 16.5;" align="center" background='http://www.leentjesweb.nl/ER/afbeeldingen/mandje_under_header.jpg' cellspacing='0' cellpadding='0' >
  18. <tr>
  19. <td class="teksttitel" style="width:18%;" >Verwijderen</td>
  20. <td class="teksttitel" style="width:21%;" align="left">Foto</td>
  21. <td class="teksttitel" style="width:30%;">Titel</td>
  22. <td class="teksttitel" style="width:18%;">Aantal</td>
  23. <td class="teksttitel" style="width:20%;">Prijs</td>
  24. </tr>
  25. </table>
  26. <?php
  27. }
  28. if($aantal){
  29. for($i = 0; $i < count($aantal); $i++){
  30. $num=$_SESSION['bestelling'][$i];
  31. if($num){
  32. list($titel,$foto,$prijs)=split("\|",$cdnummer[$num]);
  33. $blaat=explode(".",$prijs);
  34. if($blaat[1]==""){
  35. $prijs=$prijs;
  36. }
  37. $totaal=$totaal+$prijs;
  38. ?>
  39.  
  40. <script language="javascript" type="text/javascript"> buttons++; prijs".$i."=".$prijs."; </script>
  41. <table class="border" align="center" style="width:720;" >
  42. <tr>
  43. <td style="width:20%;" align="center"><input TYPE='checkbox' value='X' name='status' onclick='if(window.confirm(\"Weet uw zeker dat u dit artikel uit uw winkelmandje wilt verwijderen?\")){ window.location=\"mand.php?status=X&id=".$i."\" } else { this.checked=false; }'></td>
  44. <td class="tekst" style="width:20%;" align="left"> <?php echo "".$foto.""; ?></td>
  45. <td style="width:28%;" class="tekst" align="left"> <?php echo "".$titel.""; ?></td>
  46. <td style="width:16%;" class="tekst" > <?php echo "<input size=1 value=\"1\" id=aantal ".$i." onchange=\"prijs=".$prijs."; newprijs=Math.round(eval(this.value*prijs)*100)/100; document.all.prijs".$i.".value=newprijs;\" name=aantal[]></td>"; ?>
  47. <td class="tekst" style="width:24%;"> <?php echo "<input class=\"tekst\" value='&euro; ".$prijs."' naam=prijs".$i." id=prijs".$i." readonly style=\"background-color:transparent; border:0;\"></td>"; ?>
  48. <br>
  49. </tr>
  50. <?php
  51. $aantal++;
  52. }
  53. }
  54. ?>
  55.  
  56. <table border="1" style="width:96%;">
  57. <tr>
  58. <td style="width:50%;"></td>
  59. <td style="width:29%"></td>
  60. <td class="teksttitel" >Totaal <div id=totaalwaarde STYLE=\"DISPLAY:INLINE\"><?php echo "&euro;".$totaal.""; ?></div><br>
  61. </td>
  62. </tr>
  63. </table>
  64. <table style="width:720;">
  65. <tr>
  66. <td style="width:60;">&nbsp;&nbsp;&nbsp;</td>
  67. </tr>
  68. </table>
  69. <br><br>
  70.  
  71. <script language="javascript" type="text/javascript">
  72. function totaal(){
  73. document.all.totaalwaarde.innerHTML="";
  74. for(i=0; i < buttons; i++)
  75. {
  76. prijs2=eval("prijs"+i);
  77. aantal2=document.getElementById("aantal"+i).value;
  78. prijs3=prijs2*aantal2;
  79. document.all.totaalwaarde.innerHTML=eval(document.all.totaalwaarde.innerHTML+"+prijs3");
  80. document.all.totaalwaarde.innerHTML=Math.round(document.all.totaalwaarde.innerHTML*100)/100;
  81.  
  82. }
  83. }
  84. </script>
  85.  
  86. <table style="width: 92%;" align="center">
  87. <tr>
  88. <td align='left' style="width:17%;">
  89. <input class="knopcont" style="cursor: hand; height: 20px;" type="button" onClick = 'javascript:parent.location.href = "http://www.excellent-recordings.nl/?page=cd&pagina=1"' value="Verder winkelen" return false" onMouseOver = "this.className = 'menu_items_h';status = 'Verder winkelen'; return true" onMouseOut = "this.className = 'menu_items';status = ''; return true">
  90. </td>
  91. <td style="width:550;">
  92. <button class="knopcont" style="cursor: hand; height: 20px;" onclick="totaal()" >Update</button>
  93. </td>
  94. <td align='right' >
  95. <input class="knopcont" style="cursor: hand; height: 20px;" type=submit value="Afrekenen"></form>
  96. </td>
  97. </tr>
  98. </table>
  99. <br>
  100.  
  101. <?php
  102. } else
  103. {
  104. ?>
  105. <table style="width:100%;">";
  106. <tr>
  107. <td align="center"><h1>Winkelmandje</h1></td>
  108. </tr>
  109. </table>
  110. <br>
  111. <table cellpadding="0" cellspacing="0" style="width:90%;" align="center">
  112. <tr>
  113. <td class="tekst" style="width:100%; vertical-align="top"; " >
  114. <br><br>
  115. Er bevinden zich geen artikelen in uw winkelmandje!
  116. <p>
  117. Op deze pagina worden de door u gekozen producten weergegeven.
  118. </td>
  119. </tr>
  120. </table>
  121. <?php
  122. }
  123. }
  124. else
  125. {
  126.  
  127. if(strtolower($_GET["status"])=="annuleren"){
  128.  
  129. header("location: index.php?page=mand");
  130. }
  131.  
  132. if($_GET["status"]=="X"){
  133. $ar=$_SESSION['bestelling'];
  134. unset($_SESSION['bestelling']);
  135.  
  136.  
  137.  
  138.  
  139. for($i=0; $i < count($ar); $i++)
  140. {
  141. if(($i != $_GET['id'])){
  142. $_SESSION['bestelling'][]=$ar[$i];
  143. }
  144. }
  145.  
  146. header("location: index.php?page=mand");
  147.  
  148. }
  149. }
  150.  
  151.  
  152. ?>



Edit:
Je kunt niet verwachten dat men dat even voor je uitzoekt. Welke (JavaScript)-fout krijg je?

10 antwoorden

Gesponsorde links
Offline leendertW - 03/02/2005 10:09
Avatar van leendertW PHP beginner Ik krijg geen fout.

Het totaal upgraden zit nu wel goed nu onthoud hij het aantal alleen niet als je weer gaat verder winkelen en dan weer terug gaat dan staat het aantal weer op 1.
Offline Thomas - 03/02/2005 10:33 (laatste wijziging 03/02/2005 11:01)
Avatar van Thomas Moderator - Verplaats session_start() en AL je sessie-bewerk-regels eens naar BOVEN aan in je script ? Daar horen ze namelijk thuis (ook al maak je gebruik van ob_start())
- repareer je code... wat zou $_GET[\"status\"] moeten doen ? Je ziet al aan de code-highlighting hierboven dat daar geen biet van klopt
- spring in in je code

Als het probleem zich dan nog niet heeft opgelost, kijken we verder.
Offline leendertW - 03/02/2005 12:15
Avatar van leendertW PHP beginner 1. Goed zal ik doen.
2. $_GET["status"] is toch normaal. In de code staat geen [\\"status\\"] want als ik het wil bewerken is het gewoon goed su ligt het aan het forum.!
3. Zal ik ook doen^^
Offline Thomas - 03/02/2005 13:08
Avatar van Thomas Moderator Je hebt gelijk - (dat \" gedoe) - dit ga ik even uitzoeken .

Sorry about that .
Offline leendertW - 03/02/2005 16:50
Avatar van leendertW PHP beginner Ik kom er niet achter. Hij onthoud het aantal dus niet:S
terwijkl ik boven aan heb staan
  1. $aantal= $_SESSION['bestelling'];

en
  1. $num=$_SESSION['bestelling'][$i];


Daarom vind ik het dus vreemd dat hij het aantal niet onthoud.

Offline Thomas - 03/02/2005 17:07 (laatste wijziging 03/02/2005 17:14)
Avatar van Thomas Moderator Nou, ik niet.

$blaat = $_SESSION['var'];

Zo kun je de waarde die in $_SESSION['var'] staat uitlezen en toekennen aan $blaat - aan de sessie-variabele 'var' verandert niets.

$_SESSION['var'] = $blaat;

Zo ken je de waarde $blaat toe aan de sessie-variabele 'var'. Je sessie -variabele 'var' heeft nu de (nieuwe) waarde overgenomen van $blaat.

EDIT: Je gooit ook elke keer je sessie-data weg (session_destroy()) ?
Offline leendertW - 03/02/2005 17:49
Avatar van leendertW PHP beginner ja ik gooi de sessie data weg nadat de status annuleren is de status X is.

Maar $aantal=$_SESSION['bestelling']; moet dus
$_SESSION['bestelling'] = $aantal; zijn?
Offline Thomas - 03/02/2005 18:24
Avatar van Thomas Moderator Als je de sessie-variabele 'bestelling' wilt updaten met de waarde van $aantal wel ja.
Offline leendertW - 03/02/2005 18:29
Avatar van leendertW PHP beginner Maar wanneer ik na de volgende pagina ga (het afrekenen) dan onthoud hij het aantal wel.
Maar wanneer ik dus naar de home pagina ga en dan weer terug dan staat alles weer op 1.
Offline Thomas - 03/02/2005 18:33
Avatar van Thomas Moderator Mja euh, jij hebt het script geschreven he ?
Zet eens wat commentaar in je script (vertel er bij wat het zou moeten doen), dat maakt meestal het redeneren over scripts (vooral voor anderen) makkelijker.

Je start onder aan je pagina ergens je sessie, terwijl je bovenaan je pagina al sessie-variabelen wilt gebruiken ? Dat zal in ieder geval niet goed zijn / gaan ...
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.204s