Mammouth du PHP |
570 Messages
20 févr. 2009, 14:45
dans mon constructeur je met les variables en type array()
public function __construct()
{
session_start();
// chargement du caddie
if (isset($_SESSION['caddie']))
{
$this->caddie = $_SESSION['caddie'];
$this->nomOption= $_SESSION['nomSession'];
$this->proprieteOption= $_SESSION['proprieteOption'];
}
else
{
$this->caddie=array();
$this->nomOption=array();
$this->proprieteOption=array();
}
}
ensuite le traitement se fait ici :
// ajoute un formulaire avec le nom et nombre d'article comme variable, grenade comme le fruit ;)
public function setFormulaireAjout($nombreGrenade, $grenade, $nomOption, $proprieteOption)
{
if (isset($_GET[$grenade]))
{
if(isset($_GET[$nombreGrenade]))
{
$this->caddie[$grenade]=0;
$this->caddie[$grenade]+=$_GET[$nombreGrenade];
}
else
{
$this->caddie[$grenade] +=$_GET[$nombreGrenade];
}
if (isset($_GET['nomOption']))
{
$this->nomOption[$grenade]=$_GET['nomOption'];
$this->proprieteOption[$grenade]=$_GET['proprieteOption'];
$_SESSION['nomOption']=$this->nomOption;
$_SESSION['proprieteOption']=$this->proprieteOption;
}
$_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>
<div style="">
<label>quantité</label>
<select name="<?php echo $nombreGrenade;?>">
<?php for($i=1; $i<=20; $i++)
echo '<option value="'.$i.'">'.$i.'</option>';?>
</select>
</div>
<?php
if(isset($nomOption) && !empty($nomOption)):
$proprieteOption=explode(" ",$proprieteOption);?>
<div style="margin: -25px 0 0 132px; width: 200px;">
<div><input type="hidden" name="nomOption" value="<?php echo $nomOption;?>" /></div>
<label><?php echo $nomOption;?></label>
<select name="proprieteOption">
<?php foreach ($proprieteOption as $prop):
echo '<option value="'.$prop.'">'.$prop.'</option>';
endforeach;?>
</select>
</div><?php
endif;?>
<div><input type="hidden" name="<?php echo $grenade;?>" value="<?php echo $grenade;?>" /></div>
<div><input type="hidden" name="transfertUi" value="effet" /></div>
<div style="
<?php echo (!isset($nomOption) || empty($nomOption)) ? 'margin:-25px 0 0 130px;' :'margin:10px 0 0 0px; padding:0 10px;';?>">
<input type="submit" value="ajouter" />
</div>
</form><?php
}
la variable caddir fonctionne parfaitement
$_SESSION['caddie']=$this->caddie;
Au fond je me demande d'ou vient cette difference entre le local et le serveur ?
Puisque c'est au deuxième ajout que sa se tranforme en string.
C'est ce code qui ne fonctionne pas
if (isset($_GET['nomOption']) && !empty($_GET['nomOption']))
{
$this->nomOption[$grenade]=$_GET['nomOption'];
$this->proprieteOption[$grenade]=$_GET['proprieteOption'];
$_SESSION['nomOption']=$this->nomOption;
$_SESSION['proprieteOption']=$this->proprieteOption;
}
Pourtant assez clair ?