login  Naam:   Wachtwoord: 
Registreer je!
 Forum

aantal update met functie

Offline Clemens32 - 01/09/2006 12:41
Avatar van Clemens32PHP interesse Het updaten van het aantal produkten gaat alleen goed als er maar 1 produkt in de winkelwagen zit.
Kan iemand mij helpen, ik ben nou al 3 dagen bezig met het winkelwagentje.
http://www.plaatscode.be/2436/

8 antwoorden

Gesponsorde links
Offline Thomas - 01/09/2006 12:46
Avatar van Thomas Moderator Waar kunnen we addCustomerProduct() en dellCustomerProduct() vinden?
Offline Rik - 01/09/2006 12:50 (laatste wijziging 01/09/2006 12:56)
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Regel 78:
  1. <input style="background-color: #B70000; border: 1px solid #FFFF00;" type="text" size="2" maxlength="3" value="1" name="aantal" value="<?php echo isset($_POST["aantal"]); ?>" />


Die isset zal nooit een aantal returnen, die zegt alleen of $_POST["aantal"] bestaat. Maak er eens dit van:
  1. <input style="background-color: #B70000; border: 1px solid #FFFF00;" type="text" size="2" maxlength="3" value="1" name="aantal" value="<?php echo isset($_POST["aantal"]) ? $_POST["aantal"] : 0; ?>" />
Offline Clemens32 - 01/09/2006 13:01 (laatste wijziging 01/09/2006 13:03)
Avatar van Clemens32 PHP interesse Allereerst allen alvast bedankt voor de hulp.
Het updaten van het aantal gaat wel goed als het maar één produkt betreft, maar als het er meer zijn wordt alleen de onderste geupdate.

@ FangorN
http://www.plaatscode.be/2438/
Hier vind je de rest van de functies.

@xSc
Mijn onderwerp is het ook niet, maargoed ik hoef er straks ook niet mee te werken, ik maak alleen de site.

@Boukefalos
Dit doet ook niks extra's.
Het blijft hetzelfde.
Offline Rik - 01/09/2006 13:15
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Voor de overzichtelijkheid, de functies:
http://www.plaatscode.be/2440/

winkelwagen.php Regel 40:
  1. if (isset($_POST["verzendbutton"]) != "verzenden") {

Die check lijkt me niet helemaal goed.

Meer kan ik zo snel ff niet vinden.
Offline Clemens32 - 01/09/2006 13:19
Avatar van Clemens32 PHP interesse Die regel 40 gebruik ik vaak en opzich gaat het versturen goed.
Het enige dat niet goed gaat is het updaten van het aantal als ik meer dan 1 produkt in het wagentje heb zitten.
En dan bedoel ik eigenlijk dat het vanaf regel 112 ( } else { ) niet goed gaat.
Daar wordt alle data neergezet alleen het aantal is dus niet goed.

Misschien zou ik in plaats van isset() !empty() kunnen gebruiken, maar dat zal in ieder geval niet veel veranderen aan het updaten van het aantal.
Offline Rik - 01/09/2006 13:30 (laatste wijziging 01/09/2006 13:37)
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Ik denk dat ik het heb gevonden. 

winkelwagen.php regel 78 +79
  1. <input style="background-color: #B70000; border: 1px solid FFFF00;" type="text" size="2" maxlength="3" value="1" name="aantal" value="<?php echo isset($_POST["aantal"]); ?>" />
  2. <input type="hidden" name="id" value="<?php echo $id; ?>" />

Maak daar eens van:
  1. <input style="background-color: #B70000; border: 1px solid FFFF00;" type="text" size="2" maxlength="3" value="1" name="aantal[]" value="<?php echo isset($_POST["aantal"]); ?>" />
  2. <input type="hidden" name="id[]" value="<?php echo $id; ?>" />


En winkelwagen.php regel 28, vervang dat eens door:
  1. for ($i = 0; $i < count($_POST['id']; $i++) {
  2. updateProductNumber($_POST['id'][$i], $_POST['aantal'][$i]);
  3. }


Edit:
Hier ook weer een isset probleempje:
Regel 78:
  1. echo isset($_POST["aantal"]);
  2. // Moet zijn =>
  3. echo isset($_POST["aantal"]) ? $_POST["aantal"] : 0;
;)
Offline Clemens32 - 01/09/2006 13:43
Avatar van Clemens32 PHP interesse Het is gelukt, bedankt.
Ik moest alleen die onderste (die for() ) niet veranderen in regel 28, maar in regel 128 .
Kun je uitleggen wat er mis is met die isset() ?
Wat doet jouw manier dan anders dan de mijne?
Offline Rik - 01/09/2006 21:17
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Isset returnt true of false (1 of 0 als je er een int van maakt), maar je wilt de waarde die er in die variabele staat. Als je gaat testen met een product werkt nog wel, maar met meerdere krijg je nog steeds 1 terug.

Ik weet niet of je wel eens met de verkorte if..else structuur hebt gewerkt, maar eigenlijk is het heel makkelijk. De voorwaarde zet je aan het begin (isset($_POST["aantal"])), daarna een vraagteken, het gene achter het vraagteken word uitgevoerd als de voorwaarde true oplevert, anders word het gene achter de dubbele punt uitgevoerd. Met een beetje fantasie kan je ook elseif's maken enz.

Dit werkt hetzelfde:
  1. <?php
  2. if (isset($_POST['aantal'])) {
  3. echo $_POST['aantal'];
  4. } else {
  5. echo 0;
  6. }
  7. ?>
Wat is nou makkelijker? 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.24s