» »

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:
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 :8)
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

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?

arjan_t je izjavil:

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?

$n_qty = $_SESSION["cart"][$itemExists]["quantity"] + $quantity;
$_SESSION["cart"][$itemExists]["quantity"] = $n_qty;


Ker to mi žal ne deluje :8)

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


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

SQL sortiranje JOIN

Oddelek: Programiranje
171142 (909) korenje3
»

[C#,SQL]

Oddelek: Programiranje
51235 (1148) JanOlMajti
»

Baza & c#

Oddelek: Programiranje
214149 (3207) xardas
»

Matična plošča

Oddelek: Kaj kupiti
51013 (938) AndrewSmith
»

Kupujem nov prenosnik do 200.000sit

Oddelek: Kaj kupiti
281385 (1073) elasto_mania

Več podobnih tem