Récupérer $_POST[''] avec un compteur inclu

Résolu/Fermé
Jodu Messages postés 91 Date d'inscription mardi 5 février 2008 Statut Membre Dernière intervention 3 février 2010 - 26 mai 2009 à 11:02
Jodu Messages postés 91 Date d'inscription mardi 5 février 2008 Statut Membre Dernière intervention 3 février 2010 - 26 mai 2009 à 11:27
Bonjour,

Alors voilà, j'ai une page qui m'affiche une facture tirée de la base de donnée.
Le client a la possibilité de cocher, en fin de chaque ligne, si le produit qu'il a reçu est cassé. Vu que c'est un formulaire, chaque nom d'un bouton radio est numéroté grâce à un système de compteur :
Ligne 1 : bouton_1
Ligne 2 : bouton_2 etc...
Le principe est le même pour 2 choses : la quantité commandée, et la quantité que l'utilisateur saisit. En effet, si il commande plus de 1 produit, ce n'est pas sûr que tous soient cassés, il marque donc dans une zone de saisie le nombre de produits qu'il a de cassés.

Je transfert donc :
quantité_reelle + $i
quantité_cassee + $i
bouton_cassee + $i
et bien sûr, $i pour la boucle de traitement.

Je récupère ensuite ces valeurs, que j'aimerais extraire grâce à une autre boucle de traitement.
Malheureusement, je n'arrive pas à imbriquer un compteur $j dans mon array $_POST.

Voici mon code :

$j = 1;
while ($j < $i)
  {
    $quantite = $_POST['quantite " '.$j.' " '];
    $quantite_real = $_POST['quantite_real " '.$j.' " '];
     if ($quantite != NULL)
         {                
              if ($quantite_real > $quantite)
                     {
                            echo "problème";
                      }
           }
       $j = $j+1 ;
   }

Existe-t-il une méthode pour ce que je veux faire ?

Demandez moi pour plus d'explications.

Merci d'avance
A voir également:

6 réponses

jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 186
26 mai 2009 à 11:06
Bonjour,
tu pourrais passer par une variable temporaire :

while ($j < $i)
{
$tmp = "quantite$j";
$quantite = $_POST["$tmp"];
1
Yorundr Messages postés 289 Date d'inscription mardi 31 octobre 2006 Statut Membre Dernière intervention 11 juin 2012 44
26 mai 2009 à 11:22
Heu ecrit comme ca $quantite = $_POST['$tmp1'];
,je pense que $tmp1 est interpreté comme une chaine
1
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 186
26 mai 2009 à 11:23
Oui en effet il faut bien des doubles quotes et non des simples pour que cela soit interprété comme une variable
1
Yorundr Messages postés 289 Date d'inscription mardi 31 octobre 2006 Statut Membre Dernière intervention 11 juin 2012 44
26 mai 2009 à 11:09
Salut,

A quoi servent tes double-quote dans $_POST['quantite " '.$j.' " '], pourquoi ne pas simplement ecrire $_POST['quantite '.$j].

Ensuite la toujours dans $_POST['quantite " '.$j.' " '] je vois des espaces, est-ce que tes nom dans ta premiere page sont bien du style : quantite 1. D'ailleur est-ce possible ca ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Jodu Messages postés 91 Date d'inscription mardi 5 février 2008 Statut Membre Dernière intervention 3 février 2010 14
26 mai 2009 à 11:17
Bonjour,

Jeangilles, merci de ton aide, j'avais malheureusement déjà essayé, sans résultat puisque les données passées par le formulaire (à savoir le nombre d'objets cassés) n'apparaissent pas à l'affichage de la page de traitement.

mon code essayé :

$j = 1;
echo $i;
   while ($j < $i)
     {
         $tmp1 = "quantite$j";
         $quantite = $_POST['$tmp1'];
         echo $quantite ;
     }


Yorundr : Pour les espaces c'était pour la mise en forme, car on ne différenciait pas les simples quotes des doubles quotes, sinon il est évident que je n'en mets pas.

J'ai fait ce système de quotes pour concaténer selon la règle de priorité des quotes, j'ai essayé toutes les combinaisons possibles (ou presque), par exemple comme tu me l'as suggéré, $_POST['quantite'.$j].
0
Jodu Messages postés 91 Date d'inscription mardi 5 février 2008 Statut Membre Dernière intervention 3 février 2010 14
26 mai 2009 à 11:27
En effet Yorundr, je n'y avais pas pensé, erreur absolument énorme de ma part...

Comme quoi, la complexité d'une erreur est bien à inversement proportionnelle au temps mis pour la trouver...

Merci
0