Portail PHP

Forum de discussion et d'aide au php

Vous n'êtes pas identifié.

Annonce

Regles d'utilisation des forums : pensez à toujours les respecter si vous désirez obtenir des réponses rapides.
FAQ : pensez à toujours chercher dedans si la réponse à votre question est dedans.
Proposez vos news : si vous avez un evenement à annoncer
le chat : venez discuter de php.
 

#1 08-11-2007 13:03:01

pak77
Membre
Date d'inscription: 19-10-2007
Messages: 1

Récupération de données $_POST en boucle

Bonjour, j'ai un soucis avec un formulaire. Ce formulaire énumère une liste de produit avec leur prix (d'une DB), et une troisième colonne où l'utilisateur indique la quantité désirée.

Code:

<form name="commande" action="commande.php" method="post" enctype="multipart/form-data">
  <table width="500" border="0" cellspacing="0" cellpadding="0">
    <tr><td>

      <table width="350" border="1" cellspacing="0" cellpadding="0">
        <tr>
          <td width="130">&nbsp;</td>
          <td width="80" align="center">Prix</td>
          <td width="70" align="center">Quantité</td>
        </tr>
    <?php while ($row = mysql_fetch_array($result)) { ?>
        <tr>
        <?php $id = $row['id']; ?>
        <?php echo ('<input type="hidden" name="'.$id.'" value="'.$id.'">'); ?>
        <?php echo ('<input type="hidden" name="id_article[\''.$row['id'].'\']" value="'.$row['id'].'">'); ?>
        <?php echo ('<input type="hidden" name="nom[\''.$row['id'].'\']" value="'.$row['nom'].'">'); ?>
        <?php echo ('<input type="hidden" name="prix[\''.$row['id'].'\']" value="'.$row['prix'].'">'); ?>
          <td width="130" height="30"><span class="choix"><?php echo $row['nom'] ?></span></td>
          <td align="right"><?php echo $row['prix']; ?> €</td>
          <td align="center"><?php echo '<input type="text" name="quantite[\''.$row['id'].'\']"" value="" size="2" maxlength="2" align=""></td>' ?>
        </tr>
    <?php } ?>
      </table>
    </td>
    <td>
      <table width="150" border="0" cellspacing="0" cellpadding="0">
        <tr><td><INPUT type="submit" value="Ajouter à la commande" name="ajout"></td></tr>
      </table>
    </td></tr>
  </table>
</form>

ma liste s'affiche bien mais je n'arrive pas à les insérer dans mon panier virtuel

Code:

for ($i=1; $i<=18; $i++) {
$select['id'] = $_POST['id_article'][$id]; 
$select['sand'] = $_POST['nom'][$id]; 
$select['quantite'] = $_POST['quantite'][$id]; 
$select['prix'] = $_POST['prix'][$id]; 
$select['total'] = ($_POST['prix'][$id] * $_POST['quantite'][$id]); 
if(!isset($_SESSION['panier']['verrouille']) || $_SESSION['panier']['verrouille'] == false) { 
    if(!verif_panier($select['id'])) { 
        array_push($_SESSION['panier']['id'],$select['id']); 
        array_push($_SESSION['panier']['sand'],$select['sand']); 
        array_push($_SESSION['panier']['quantite'],$select['quantite']); 
        array_push($_SESSION['panier']['prix'],$select['prix']); 
        array_push($_SESSION['panier']['total'],$select['total']); 
       $ajout = true; 
    } 
    else { 
        $ajout = modif_qte($select['id'],$select['qte']); 
    } 
}

J'ai essayé plusieurs trucs du genre mais c'est vraiment pas ça. Merci de m'aider.

Hors ligne

 

#2 09-11-2007 04:22:14

lolo3129
Membre
Lieu: Paris
Date d'inscription: 10-05-2005
Messages: 505
Site web

Re: Récupération de données $_POST en boucle

salut,

il faut que dans tes boucles, tu donnes toujours le même nom à ton input. et le post créera automatiquement un tableau

il suffit ensuite de boucler sur le tableau

Code:

foreach($_POST['id_article'] as $k => $v)
  echo "$k = $v"; //  $k est le rang dans le tableau, $v est l'id de ton article.

tous les tableaux auront la même taille, donc il suffit de boucler sur un et de réutiliser le $k pour accéder aux éléments du même article sur les autres tableaux

Hors ligne