Forum » Izdelava spletišč » Nakupovalni voziček, seje in update količine?
Nakupovalni voziček, seje in update količine?
Housy ::
Podrav
Delam svoj nakupovalni voziček z možnostjo plačila po povzetju. Zalomilo se mi je pri sejah, saj enostavno ne znam preverit oz. ne deluje ravno tako kot bi moralo, če je bil npr. posamezni artikel že dodan v košarico ali ne. V primeru, da je artikel že v košarici in uporabnik doda istega z drugačno količino, bi rad da se v SESSION arrayu pri tem artiklu posodobi samo količina.
Zaenkrat imam spisano tole:
Kako torej v SESSION arrayu posodobit samo količino za posamezni artikel, če je ta seveda že v vozičku?
Hvala in lp,
Housy
Delam svoj nakupovalni voziček z možnostjo plačila po povzetju. Zalomilo se mi je pri sejah, saj enostavno ne znam preverit oz. ne deluje ravno tako kot bi moralo, če je bil npr. posamezni artikel že dodan v košarico ali ne. V primeru, da je artikel že v košarici in uporabnik doda istega z drugačno količino, bi rad da se v SESSION arrayu pri tem artiklu posodobi samo količina.
Zaenkrat imam spisano tole:
session_start(); $product_id = $_POST["product_id"]; $quantity = $_POST["quantity"]; if(isset($_POST["add_product"]) && $product_id > 0 && $quantity > 0) { if(is_numeric($product_id) && is_numeric($quantity)) { // create cart session, if it doesn't exist if(!isset($_SESSION["cart"])) $_SESSION["cart"] = array(); // check if product was added already if(!in_array($product_id, $_SESSION["cart"])) array_push($_SESSION["cart"], array("product_id" => $product_id, "quantity" => $quantity)); else echo "Ta artikel je ze dodan!"; print_r($_SESSION["cart"]); } } else header("Location: index.php");
Kako torej v SESSION arrayu posodobit samo količino za posamezni artikel, če je ta seveda že v vozičku?
Hvala in lp,
Housy
- spremenil: Housy ()
Housy ::
Sem še iskal po netu, ampak mi nikakor ne uspe.
Skoz se kreira nov array, namesto da obstoječega prepiše.
Sedaj imam narjeno takole, ampak ne dela
Kaj delam narobe?
Skoz se kreira nov array, namesto da obstoječega prepiše.
Sedaj imam narjeno takole, ampak ne dela
session_start(); $product_id = $_POST["product_id"]; $quantity = $_POST["quantity"]; if(!isset($_SESSION["cart"])) $_SESSION["cart"] = array(); // Then, add this code somewhere toward the top of your code before your 'if' block function checkCartForItem($addItem, $cartItems) { if(is_array($cartItems)){ foreach($cartItems as $key => $item) { if($item["product_id"] === $addItem) return $key; } } return false; } $itemExists = checkCartForItem($product_id, $_SESSION["cart"]); if($itemExists){ $_SESSION["cart"][$itemExists]["quantity"] + $quantity; } else { $item = array( "product_id" => $product_id, "quantity" => $quantity ); // Add this item to the shopping cart $_SESSION["cart"][] = $item; } print_r($_SESSION["cart"]);
Kaj delam narobe?
arjan_t ::
ti samo dodas (+) quantity in nove vrednosti nikamor ne "shranis"
+ to da ti lahko nekdo pod quantity poslje 0.1
+ to da ti lahko nekdo pod quantity poslje 0.1
Housy ::
To za količino z decimalko lahko rešim z intval + da nardim preverjanje, če je količina večja kot 0? Je tako?
Kako pa naj prepišem $_SESSION array?
Kako pa naj prepišem $_SESSION array?
ti samo dodas (+) quantity in nove vrednosti nikamor ne "shranis"
+ to da ti lahko nekdo pod quantity poslje 0.1
Zgodovina sprememb…
- spremenil: Housy ()
Housy ::
arjan_t, si mislil morda takole?
Ker to mi žal ne deluje
Vedno se kreira nov array, tista funkcija za preverjanje že obstoječega artikla v košarici nekak ne deluje najbolj.
Takole se mi kreirajo arrayi.
Help please!
$n_qty = $_SESSION["cart"][$itemExists]["quantity"] + $quantity; $_SESSION["cart"][$itemExists]["quantity"] = $n_qty;
Ker to mi žal ne deluje
Vedno se kreira nov array, tista funkcija za preverjanje že obstoječega artikla v košarici nekak ne deluje najbolj.
Array ( [0] => Array ( [product_id] => 1 [quantity] => 1 ) [1] => Array ( [product_id] => 1 [quantity] => 1 ) [2] => Array ( [product_id] => 2 [quantity] => 2 ) )
Takole se mi kreirajo arrayi.
Help please!
Zgodovina sprememb…
- spremenil: Housy ()
phyro ::
ne maram php-ja in ne znam sintakse. ampak mislim da je problem da ne razumeš (ali pa si se zmotil) kako si kreiral array-e. Recimo ti si pushal array -> array("product_id" => 1, "quantity" => 2). Ampak kako si mislu pridt ti do tega array-a? Ne moreš ti namreč kar tako nardit:
$_SESSION["cart"][$product_id][$quantity] += 3;
ker ti maš kot vidiš tam ko si izpisal array, povedat pri katerem arrayu hočeš dostopat do "product_id" key-a.
Torej recimo če bi ti hotu pridt do product_id = 1, bi to v tem konkretnem primeru naredu takole i think:
$_SESSION["cart"][2]["quantity] += 3; ampak tole dvojko ti je on avtomatsko vstavil ker to je ključ katerega value = array("product_id"=>2, "quantity"=>2)
upam da sm dal idejo kaj je narobe lol
$_SESSION["cart"][$product_id][$quantity] += 3;
ker ti maš kot vidiš tam ko si izpisal array, povedat pri katerem arrayu hočeš dostopat do "product_id" key-a.
Torej recimo če bi ti hotu pridt do product_id = 1, bi to v tem konkretnem primeru naredu takole i think:
$_SESSION["cart"][2]["quantity] += 3; ampak tole dvojko ti je on avtomatsko vstavil ker to je ključ katerega value = array("product_id"=>2, "quantity"=>2)
upam da sm dal idejo kaj je narobe lol
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | SQL sortiranje JOINOddelek: Programiranje | 1142 (909) | korenje3 |
» | [C#,SQL]Oddelek: Programiranje | 1235 (1148) | JanOlMajti |
» | Baza & c#Oddelek: Programiranje | 4149 (3207) | xardas |
» | Matična ploščaOddelek: Kaj kupiti | 1014 (939) | AndrewSmith |
» | Kupujem nov prenosnik do 200.000sitOddelek: Kaj kupiti | 1386 (1074) | elasto_mania |