Mammouth du PHP |
570 Messages
06 sept. 2008, 18:24
à l'origine j'ai une classe ou j'ai fais comme ça
// ajoute un formulaire avec le nom et nombre d'article comme variable, grenade comme le fruit ;)
public function setFormulaireAjout($nombreGrenade, $grenade)
{
if (isset($_GET[$grenade]))
{
if(isset($_GET[$nombreGrenade]))
{
$this->caddie[$grenade]=0;
$this->caddie[$grenade]+=$_GET[$nombreGrenade];
}
else
$this->caddie[$grenade] += $_GET[$nombreGrenade];
$_SESSION['caddie'] = $this->caddie;
}?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="GET">
<div><input type="hidden" name="page" value="detailProduit" /></div>
<div><input type="hidden" name="idProduit" value="<?php echo $_GET['idProduit'];?>" /></div>
<div><input type="hidden" name="categorie" value="<?php echo $_SESSION['categorie'];?>" /></div>
<?php //echo 'Nombre de '.$grenade;?>
<div>
<select name="<?php echo $nombreGrenade;?>">
<?php for($i=1; $i<=20; $i++)
echo '<option value="'.$i.'">'.$i.'</option>';?>
</select>
</div>
<div><input type="hidden" name="<?php echo $grenade;?>" value="<?php echo $grenade;?>" /></div>
<div><input type="submit" value="ajouter" /></div>
</form><?php
}
ensuise je n'ai plus qu'a appellé ma méthode comme ça
$panier->setFormulaireAjout('nombre'.$id, $id);
je voudrai rediriger le résultat dans un controleur, mais je ne peux pas faire un header puis que il y a de l'affichage en amont, donc je vais faire un formulaire en dur
Code : Tout sélectionner
<form action="controleur.php" method="GET">
<div><input type="hidden" name="ajoutPanier" value="ok" /></div>
<div><input type="hidden" name="idProduit" value="<?php echo $_GET['idProduit'];?>" /></div>
<?php //echo 'Nombre de '.$grenade;?>
<div>
<select name="nombreProduit">
<?php for($i=1; $i<=20; $i++)
echo '<option value="'.$i.'">'.$i.'</option>';?>
</select>
</div>
<div><input type="submit" value="ajouter" /></div>
</form>
puis dans mon controlleur je fais:
if (isset($_GET['idProduit']))
{
if(isset($_GET['nombreProduit']))
{
$caddie['idProduit']=0;
$caddie['idProduit']+=$_GET['nombreProduit'];
}
else
$caddie['idProduit'] += $_GET['nombreProduit'];
$_SESSION['caddie'] = $caddie['idProduit'];
//header('Location:index.php?page=detailProduit&idProduit='.$_GET['idProduit']);
}
ta méthode m'écrase toutes les variables de session déjà ajouté.
if (isset($_GET['idProduit']))
{
$_SESSION['caddie']=array();
$caddie['idProduit'] += $_GET['nombreProduit'];
$_SESSION['caddie'][] = $caddie['idProduit'];
echo 'id produit'.$_GET['idProduit'].'<br>';
echo 'nombre produit'.$_GET['nombreProduit'].'<br>';
echo 'session '.$_SESSION['caddie'].'<br>';
foreach($_SESSION['caddie'] as $index=> $nombre)
{
$quantiteTotal+=$nombre;
}
echo $quantiteTotal . " articles"; //affichage du total après la boucle
}
]