Hallo,
Ik heb het winkelwagen script van een tutorial hier en eigenlijk weer opnieuw geschreven dus alle codes naar mijn eigen wens opgebouwd en voor mij overbodige dingen weg gehaald dingen toegevoegd.

maar nu is er 1 probleem en ik kom er niet uit, namelijk als ik 1 product toevoeg doet hij dat en ik kan zelf het product nog een keer toevoegen zodat aantal goed werkt maar nu het probleem wil ik een geheel ander product toevoegen doet hij niks.

de verwerkings code

<?php
// Sessies 'aanzetten'
session_start();

// Producten controleren
if(!empty($_POST['id'])) $product_nr = $_POST['id'];
else exit('Geen id');
if(!empty($_POST['aantal'])) $aantal = $_POST['aantal'];
else exit('Geen aantal');
if(!empty($_POST['maat'])) $maat = $_POST['maat'];
else exit('Geen maat');
if(!empty($_POST['kleur'])) $kleur = $_POST['kleur'];
else exit('Geen kleur');


// Controleren of er al inhoud is op de winkelwagen
if(empty($_SESSION['winkelwagen']))
{
	// Zoniet, nieuwe aannmaken
	$_SESSION['winkelwagen'] = $product_nr.','.$aantal.','.$maat.','.$kleur;
}
else
{
	// Winkelwagen opsplitsen
	$winkelwagen = explode('|', $_SESSION['winkelwagen']);

	// Winkelwagen inhoud tellen
	$count = count($winkelwagen);

	// Kijken of product al in de winkelwagen zit
	$add = FALSE; // Variabelen om te kijken of we later moeten toevoegen
	foreach($winkelwagen as $products)
	{
		/*
		Uitleg v.d. explode hieronder
			$product[x] -->
			x == 0 -> product_nr
			x == 1 -> aantal
			x == 2 -> maat
			x == 3 -> kleur
		*/
		$product = explode(',',$products);
		if($product[0] == $product_nr)
		{
			// Het product is al in de winkelwagen dus hoeveelheid verhogen met aantal producten dat je wilt
			$product[1] = $product[1] + $aantal;
			$add = FALSE;  // Dus niet toevoegen
		}

		// En weer in de sessie zetten
		$i++;
		if($i == 1)
		{
			$_SESSION['winkelwagen'] = $product[0].','.$product[1].','.$product[2].','.$product[3];
		}
		else
		{
			$_SESSION['winkelwagen'] = $_SESSION['winkelwagen'].'|'.$product[0].','.$product[1].','.$product[2].','.$product[3];
		}
	}

	// Als we dus wel moeten toevoegen
	if($add)
	{
		$_SESSION['winkelwagen'] = $_SESSION['winkelwagen'].'|'.$product[0].','.$product[1].','.$product[2].','.$product[3];
	}
}

// Doorsturen naar winkelwagen
header('Location: winkelwagen.php');
?> 


Kan iemand zien of ik in de gehele code iets fout heb gedaan? waardoor dit probleem kan onstaan?

U kunt het hier zelf ervaren: http://after-party.nl/Winkelwagen/

Gr, Milo
Milo schreef op 26.08.2009 16:55
Serieus schut u die codes gewoon uit uw mouw ofzo??

Uh, ja. Ik heb nog nooit een shop gemaakt maar ik ben al een tijdje bezig met programmeren.
Milo schreef op 26.08.2009 16:55
PS nog 1 ding waar zijn de waarden _value voor?

Dat zijn gewoon de hulpvars voor de foreach() loops. Ik probeer er een beetje logische naam aan te geven.

Edit: Het zijn array()'s dus $maat_array is misschien een ietsje betere naam.
okok, maar die vars zijn voorderest dus niet nodig??
Nee, ze worden alleen in de volgende foreach() weer één voor één uitgelezen. Dat is eigenlijk alles.
okok, zou ik dit script bij de script libary zetten, heb namelijk gezien dat er redelijk veel vraag naar is.. uiteraart met uw naam erbij
Haha, zo bijzonder vind ik het nou ook weer niet. Het is gewoon een kwestie van een beetje logisch indelen. Ik ben alleen even verder gegaan op de voorzet ban Robert.
Okok,
was maar voorstel omdat ik wel wat topics had gelezen hier en er stonden er redelijk wat...
en huidige script dat er staat is inmiddels wat verouderd

Reageren