voila mon probleme d'ordre national :
je fais des posts dans mon formulaire, je reccupere dans la page suivante les posts pour les mettre dans un array de la variable $_SESSION par ajout avec la fonction array_push. Donc $_SESSION contient un array dans lequelle je sauvegarde des elements. Mais, lorsque je controle la liste apres ajout, l'element ajoute a ete mis en double. Ce qui est bizarre c'est que, un mouchard qui me dit combien de fois l'operation d'ajout a ete effectue m'en donne qu'un. Il semble que c'est comme si la page ouverte apres l'envoie du formulaire s'execute 2 fois, la premiere execute juste l'operation d'ajout avec la fonction array_push, puis la page s'execute normalement et donc a nouveau, l'element poste est ajoute ...
pas clair ?
voici une portion pertinente de mon code :
les pages et les includes sont comme suit
page index.php
include gestion_order.php
include listProducts.php
fin page index.php
le formulaire est dans listProducts.php
la page ou sont envoyes les post est la meme : index
les donnees envoyees sont traitees dans gestion_order.php
le code :
listProducts.php :
...
<form name="listProductsForm" action="" method="POST">
...
// boucle
<input type="image" src="./img/ajout.gif" alt="ajouter" border="0" onMouseOver="this.src='./img/ajout_over.gif'"
onMouseOut="this.src='./img/ajout.gif'" onClick="this.src='./img/ajout_on.gif';
poster('listProductsForm', 'refListProducts', '" . $ligneProducts['ref'] . "');
poster('listProductsForm', 'designationListProducts', '" . $ligneProducts['mod'] . "');
poster('listProductsForm', 'catListProducts', '" . $ligneProducts['cat'] . "');
poster('listProductsForm', 'prixListProducts', '" . $ligneProducts['prix'] . "');
document.forms['listProductsForm'].submit();">
<input type="hidden" name="refListProducts" value="">
<input type="hidden" name="designationListProducts" value="">
<input type="hidden" name="catListProducts" value="">
<input type="hidden" name="prixListProducts" value="">
</form>";
je precise que la fonction poster est du javascript qui ne fait qu'attribuer les valeurs aux hidden lors de l'envoiefin listProducts.php
gestionOrder.php :
...
if (isset($_POST['refListProducts'])) {
$addList = array(
'reforder' => $_POST['refListProducts'],
'nameproductsorder' => $_POST['designationListProducts']);
'catorder' => $_POST['catListProducts'],
'prixunitorder' => $_POST['prixListProducts'],
'quantiteorder' => 1);
unset($_POST['refListProducts']);
unset($_POST['designationListProducts']);
unset($_POST['catListProducts']);
unset($_POST['prixListProducts']);
array_push($_SESSION['session_order']['productsorder'], $addList);
unset($addList);
unset($exist);
$_SESSION['session_order']['etatTransac'] = 'modif';
...
j'espere que c'est plus clair.
si quelqu'un ou quelqu'une ou autre a une idee, je suis preneur pour toute reponse interplanetaire.
merci