login  Naam:   Wachtwoord: 
Registreer je!
 Forum

waarde van var in array wijzigen

Offline JLT - 23/02/2006 15:14
Avatar van JLTPHP interesse Hopelijk is dit mijn laatste vraagje betreft de array's (kan bijna geen array meer zien:s ). Ze zijn mega handig heb ik gemerkt maar ook wel lastig.

Ik heb een array welke gevuld is met een $titel, $aantal en $prijs. Als iemand een voorwerp aanklikt wordt deze netjes toegevoegd aan de array. Als iemand nog een keer klikt wordt het aantal met 1 verghoogd.

In de pagina (winkelwagen.php) print ik de hele array op het scherm welke ik mee heb gestuurd met een session. Maar nu wil ik hier een extra optie toevoegen zodat klanten (indien nodig) het aantal nog kunnen wijzigen? Hoe doe ik dit?? Het liefst zou ik dit met een + en - linkje doen?

Hier is de code die ik gebruik om de boeken toe te voegen:
  1.  
  2. if(isset($_GET['titel'])) {
  3. $titel = $_GET['titel'] ;
  4. $prijs = $_GET['prijs'] ;
  5.  
  6. // zat het product al in je mandje? Zoeken :(
  7. $found = false;
  8. $i = 0;
  9. while(!$found && $i < sizeof($_SESSION['winkel']))
  10. {
  11. if($_SESSION['winkel'][$i]['titel'] == $titel)
  12. {
  13. $found = true;
  14. }
  15. else
  16. {
  17. $i++;
  18. }
  19. }
  20.  
  21. // gevonden?
  22. if($found)
  23. {
  24. // verhoog aantal met 1
  25. $_SESSION['winkel'][$i]['aantal']++;
  26. }
  27. else
  28. {
  29. // product bestond nog niet - aanmaken
  30. $_SESSION['winkel'][] = array(
  31. "titel" => $titel,
  32. "aantal" => 1,
  33. "prijs" => $prijs
  34. );
  35. }
  36. }

4 antwoorden

Gesponsorde links
Offline Thomas - 23/02/2006 15:45 (laatste wijziging 23/02/2006 16:05)
Avatar van Thomas Moderator Ik raad je toch serieus aan om je array anders op te zetten, zoals ik voorstelde in het andere bericht van jou.

@prorsoft: dat soort antwoorden worden niet gewaardeerd.

Ik post later wel een voorbeeldje van een handigere array-opzet.

EDIT: is het trouwens niet een veel beter idee om een winkelende gebruiker meteen de optie te geven om met zo'n -/+ knop de hoeveelheden te bepalen. Dan hoeft ie de items ook niet een voor een in te laden? Aan de andere kant: meestal zal ie van alles maar één item aanschaffen...
Offline JLT - 23/02/2006 16:13
Avatar van JLT PHP interesse Ja ben het met je eens dat mensen over het algemeen maar 1 product bestellen maar je zal net zien dat er iemand is die er 2 wilt hebben en niet weet dat je ook 2x op een voorwerp kan klikken mij gaat mailen 

Ben benieuwd naar jou array. Hopelijk werkt dit wat makkelijker
:D

Grtzz
Jelte
Offline vinTage - 23/02/2006 16:18
Avatar van vinTage Nieuw lid Beetje offtopic, maar mischien ook niet..

Ik heb eens op dezelfde manier een winkelmandje willen vullen, na uren puzzelen is me dat ook gelukt, ga ik daarna dus mn script uploaden....blijkt dat het op mn host dus niet werkt 

Hopelijk heb je dat al getest, anders kom je van een koude kermis terug 
Offline JLT - 24/02/2006 09:14 (laatste wijziging 24/02/2006 09:58)
Avatar van JLT PHP interesse Ik werk vanaf m'n host. Dus ik test alles direct van de server. En het werkt tot nu toe Ik ga nog heel even verder puzzelen ik denk namelijk al een oplossing te hebben gevonden voor m'n probleem. Daarna laat ik hem door een aantal mensen even goed misbruiken (testen)!

Ik heb al een oplossing gevonden !!! Ik heb nu het volgende gebruikt voor zowel plus, min en verwijder button.

Dit gebruik ik bij de opsomming van producten.
  1. <td bgcolor=CCDA96 width=21 align=center><font face=arial size=2><a href=$PHP_SELF?MIN=".$teller.">-</a></font></td>


En dit gebruik ik in het script voordat de pagina naar het scherm wordt afgedrukt.
  1. if (isset( $_GET['DEL'] ) ) {
  2. unset($_SESSION['winkel'][$_GET['DEL']]) ;
  3. }
  4.  
  5. if (isset( $_GET['MIN'] ) ) {
  6. $_SESSION['winkel'][$_GET['MIN']]['aantal']-- ;
  7. if ($_SESSION['winkel'][$_GET['MIN']]['aantal']==0) {
  8. unset($_SESSION['winkel'][$_GET['MIN']]) ;
  9. }
  10. }
  11.  
  12. if (isset( $_GET['PLUS'] ) ) {
  13. $_SESSION['winkel'][$_GET['PLUS']]['aantal']++ ;
  14. }


En het werkt!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.192s