if in een loop.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Y A

Y A

02/06/2011 22:13:36
Quote Anchor link
Beste helpers,
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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
foreach ($_POST as $_productnummer => $_quantity) {
 if ($_quantity > 0) {
  // Post in de cart session zetten.
  $_SESSION['cart'][$_productnummer] = $_quantity;
 }
else {
  Request::instance()->redirect('cart?message=product_empty&state=error');
 }
}

?>


Bedankt!
 
PHP hulp

PHP hulp

17/05/2024 09:36:55
 
Gerhard l

gerhard l

02/06/2011 22:27:47
Quote Anchor link
door de else er gewoon uit te halen, en na de loop als $_SESSION['cart'] leeg is, waren alle $_POST 0
Gewijzigd op 02/06/2011 22:27:59 door gerhard l
 
Y A

Y A

02/06/2011 22:31:41
Quote Anchor link
Heah... maar de bedoeling van de else is juist om te checken of alle $_quantity's wel hoger zijn dan een 0

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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
foreach ($_POST as $_productnummer => $_quantity) {
                    if ($_quantity > 0) {
                        // Post in de cart session zetten.
                        $_SESSION['cart'][$_productnummer] = $_quantity;
                    }
else {
                        if (empty($_POST)) {
                            Request::instance()->redirect('cart?message=product_empty&state=error');
                        }
                    }
                }

?>
 
Gerhard l

gerhard l

02/06/2011 22:40:51
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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');
}

?>



edit: o al opgelost dus
Gewijzigd op 02/06/2011 22:42:16 door gerhard l
 
Y A

Y A

02/06/2011 22:49:01
Quote Anchor link
ja :) maar toch bedankt!

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]);
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.