if in een loop.
ik heb in de volgende loop een klein probleem.
Ik wil dat de ' if($_quantity > 0) ' door alle $_POST array loopt,
Maar dat doet hij niet als de eerste $_quantity 0 is dan gaat hij al naar ' else '
Hoe kan ik ervoor zorgen dat hij in de hele $_POST array kijkt en kijkt waar de $_quantity groter is dan 0.
Code (php)
Bedankt!
Gewijzigd op 02/06/2011 22:27:59 door gerhard l
Toevoeging op 02/06/2011 22:38:19:
Ohw ik heb het al opgelost :) tog bedankt!
Oplossing: empty gebruikt,
de else moest er wel zijn ik moest alleen checken of de array leeg is ;).
Code (php)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
session_start();
$cart = '';
foreach ($_POST as $_productnummer => $_quantity) {
if ($_quantity > 0) {
// Post die hoger zijn dan 0 in de cart session zetten.
//werkt dit wel zo met [$_productnummer] ?
//$_SESSION['cart'][$_productnummer] = $_quantity;.
//anders zou je dit kunnen doen
//de 1e beginnen zonder komma
if($cart = ''){
$cart .= $_productnummer .'=>'. $_quantity;
}
else{
$cart .= ','. $_productnummer .'=>'. $_quantity;
}
}
}
//de sessie is aangemaakt in de foreach en heeft alleen de $_POST hoger dan 0 meegenomen
if(!empty($cart)){
S_SESSION['cart'] = $cart;
echo $cart;
//de sessie explode je dan op de komma en op =>
}
//er is geen sessie aangemaakt dus redirect naar lege winkelwagen
else{
Request::instance()->redirect('cart?message=product_empty&state=error');
}
?>
session_start();
$cart = '';
foreach ($_POST as $_productnummer => $_quantity) {
if ($_quantity > 0) {
// Post die hoger zijn dan 0 in de cart session zetten.
//werkt dit wel zo met [$_productnummer] ?
//$_SESSION['cart'][$_productnummer] = $_quantity;.
//anders zou je dit kunnen doen
//de 1e beginnen zonder komma
if($cart = ''){
$cart .= $_productnummer .'=>'. $_quantity;
}
else{
$cart .= ','. $_productnummer .'=>'. $_quantity;
}
}
}
//de sessie is aangemaakt in de foreach en heeft alleen de $_POST hoger dan 0 meegenomen
if(!empty($cart)){
S_SESSION['cart'] = $cart;
echo $cart;
//de sessie explode je dan op de komma en op =>
}
//er is geen sessie aangemaakt dus redirect naar lege winkelwagen
else{
Request::instance()->redirect('cart?message=product_empty&state=error');
}
?>
edit: o al opgelost dus
Gewijzigd op 02/06/2011 22:42:16 door gerhard l
En ja je kan gewoon $_SESSION['cart'][$_producnummer] = $_quantity; doen
Op deze manier kan je makkelijk door de winkelwagen voor iets zoeken / updaten of verwijderen. stel je wilt verwijderen dan doe je simple weg gewoon unset($_SESSION['cart'][$productnummer]);