goedenavond iedereen,

ik loop tegen een klein probleem op, ik ben bezig met het programmeren van mijn webshop maar ik heb een klein probleem met mijn shopping cart wanneer ik the quantity van mijn array in mijn shopping cart session probeer aan te passen, zodra ik het probeer aan te passen komt er te staan NULL in the key: quantity

dit is de code die het zou moeten aanpassen maar ik snap niet zo goed wat er fout gaat ben namelijk ook geen pro met associative arrays.

dit is precies wat mijn error aangeeft: Undefined offset: 10



$quantity_txt = $_POST['var-qnty_val'];

if(isset($_POST['btn-sbt_qnty'])){
	foreach($_SESSION["shopping_cart"] as $key => $value){
		$_SESSION["shopping_cart"][$key]['quantity'] = [$value][$quantity_txt];
}

}




P.S de quantity value begint met '1' en ik probeerde het te veranderen naar 10 en dat veranderde naar NULL

alvast bedankt,

groetjes jan
Bedoel je dit?

$_SESSION["shopping_cart"][$key]['quantity'] = $quantity_txt;
Ozzie PHP op 28/08/2020 00:36:05

Bedoel je dit?

$_SESSION["shopping_cart"][$key]['quantity'] = $quantity_txt;


hahaha ja precies dat dankjewel, ik ben blijkbaar toe aan slaap XD

[size=xsmall]Toevoeging op 28/08/2020 01:05:29:[/size]

nu krijg ik het volgende probleem, het verander iedere array value in de shopping cart inplaats van de uitgekozen key, iemand surgesties ?
Oké ... maar op die manier overschrijf je wel alle productaantallen in je sessie met hetzelfde aantal (althans in de code zoals je die hierboven hebt geplaats). Ik weet niet of dat de bedoeling is.

[size=xsmall]Toevoeging op 28/08/2020 01:07:09:[/size]

>> het verander iedere array value in de shopping cart inplaats van de uitgekozen key

Wat is 'de uitgekozen key'? Hoe kom je daaraan?
Waarom niet gewoon:
<?php
$_SESSION['cart'][<product id>] = <quantity>;
?>

(waarbij <product id> een product id is, en <quantity> de hoeveelheid)

Oftewel een mapping van product id naar hoeveelheid? Al die extra niveau's heb je toch niet nodig? De bijbehorende productinformatie kun je prima uit de database ophoesten en zou ik ook niet in een sessie vastleggen.
>> Oftewel een mapping van product id naar hoeveelheid?

Dat is toch ook wat hij doet / tracht te doen?
Ozzie PHP op 28/08/2020 01:25:05
Dat is toch ook wat hij doet / tracht te doen?

Mja maar een sessie is geen rijdend archief waar je maar alles in zou moeten dumpen wat je handig lijkt. Hier zou alleen het hoogstnoodzakelijke in moeten zitten, zonder enige opsmuk. Alles wat in je sessie zit zou ook een weloverwogen ontwerp moeten hebben, de data hierin zou eenvoudig (toegankelijk) moeten zijn. Een "tussenmuur" in de vorm van een subarray is niet nodig --> weg ermee.
>> Mja maar een sessie is geen rijdend archief waar je maar alles in zou moeten dumpen wat je handig lijkt.

Eens, maar een winkelmandje opslaan in sessie (zolang de bestelling niet is geplaatst) is zo vreemd niet.

>> Een "tussenmuur" in de vorm van een subarray is niet nodig --> weg ermee.

Ik snap niet helemaal wat je hiermee bedoelt. Welke "tussenmuur"? Oh, je bedoelt denk ik dat hij nog het woordje 'quantity' heeft toegevoegd. Als dat is wat je bedoelt dan is dat inderdaad niet nodig.
Ozzie PHP op 28/08/2020 17:01:48
Eens, maar een winkelmandje opslaan in sessie (zolang de bestelling niet is geplaatst) is zo vreemd niet.

Productinformatie opslaan in je sessie is redundant, deze info is afleidbaar uit het product id.
Hmmmm ... ik zeg: "Eens, maar een winkelmandje opslaan in sessie (zolang de bestelling niet is geplaatst) is zo vreemd niet."

Jij zegt: "Productinformatie opslaan in je sessie is redundant, deze info is afleidbaar uit het product id."

Waar heb ik het over het opslaan van productinformatie?
Ja, en meer dan product id's en hoeveelheden heb je niet nodig? Een subarray per product (aanpak TS) zou kunnen impliceren dat je meer informatie aan die kapstok op wilt hangen. Hierboven hing onder het id nog een 'quantity' key. Dat zou in kunnen houden dat je verder nog allerlei productinformatie wilt opslaan in de sessie. Ik ga er vanuit dat dat ontwerp is gebaseerd op een bepaalde gedachtengang. Maar het opslaan van allerlei productinformatie is niet nodig noch is een sessie de plaats hiervoor.

Waarschijnlijk bedoelen we hetzelfde, maar ik spreek @jan aan om te onderbouwen waarom je bepaalde keuzes maakt bij de indeling van informatie. Je kunt wel simpelweg oplossingen geven, maar als je niet uitlegt hoe je tot een oplossing komt leer je niet zoveel.

Reageren