Récupération de donnée formulmaire en aveugle

Résolu
zuddap Messages postés 71 Date d'inscription mardi 23 septembre 2008 Statut Membre Dernière intervention 20 juillet 2010 - 19 juil. 2010 à 15:25
cs_ludwig59 Messages postés 128 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 6 mai 2011 - 20 juil. 2010 à 09:23
Bonjour à tous,
Voila mon problème sur un page, je crée grâce à des formulaires précédent un dernière formulaire sous forme de tableau (je sait c'est pas top) un exemple de code :

echo "<td></td><td></td>";

Voila comme vous pouvez le voir le nom de ma 1er balise text va avoir plusieurs nom différent puisque je peux avoir 3 plats dans mon tableau.
Dans la deuxième balise text utilisateur renseignera la quantité.

Ma question est comment puis-je récupéré le nom du plat et la quantité qui lui est spécifique ? merci d'avance !

11 réponses

cs_ludwig59 Messages postés 128 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 6 mai 2011 2
19 juil. 2010 à 17:42
Ah désoler je n'avais pas compris.
En fait, il y a plusieurs étapes dans ton code ?
Il commence par choisir ses plats et ensuite tu les récupère et recrée un autre formulaire pour qu'il rentre les quantités.
Dans ce cas, il faut mettre dans des champs hidden tous les ID des plats pour pouvoir les récupérer ensuite :

echo "\";
echo \"<form name='choix_finchoix' method='post' action='commande.php'>\";
echo \"----
Plat, Quantité, \";

foreach ( $plat as $contenuPlat )
{
$chaine= explode(\"/\", $contenuPlat);
$idproduit = $chaine['0'];
$libelleproduit = $chaine['1'];

echo \"----

, , \";
}
foreach ( $boisson as $contenuBoisson )
{
echo \"----
, , \";
}
foreach ( $dessert as $contenuDessert )
{
echo \"----
, , \";
}

echo "
"; 
echo "
"; 
echo ""; 
echo "</form>"; 
} 


if (isset($_POST['btn_fin'])) 
{ 

  // je récupère les id des plats mis dans les champs hidden
  $plat = $_POST['idplat'];
  if(!empty($plat))
  {
    foreach ( $plat as $idproduit )
    { 
       $valeur = $_POST["plat".$idproduit];
       echo "valeur : ".$valeur."
"; 
     }
   }

} 

3
cs_ludwig59 Messages postés 128 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 6 mai 2011 2
19 juil. 2010 à 15:38
Bonjour,

Si tes plats sont dans une base de données, tu doit avoir un ID unique pour chaque plat.
Dans ce cas, tu devrais plutôt mettre comme name de ton input :
echo "";


Ensuite pour le récupérer il te suffit de faire une boucle sur tes plats et de récupérer le POST associé :
$valeur = $_POST["plat".$IDplat];
0
zuddap Messages postés 71 Date d'inscription mardi 23 septembre 2008 Statut Membre Dernière intervention 20 juillet 2010
19 juil. 2010 à 15:47
Ouais j'y est pas pensé je vais tenter sa et je tient au courrant !
0
zuddap Messages postés 71 Date d'inscription mardi 23 septembre 2008 Statut Membre Dernière intervention 20 juillet 2010
19 juil. 2010 à 16:04
Je ne parvient pas à récupéré ni le nom ni la quantité :

echo "<td></td><td></td>";

/////////////////////////////////////////////////////
if (isset($btn_fin))
{
$valeur = $_POST["plat".$idproduit];
echo $valeur;
}

mais quand je fait afficher la source j'ai bien comme nom "plat4" par exemple !
0

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

Posez votre question
cs_ludwig59 Messages postés 128 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 6 mai 2011 2
19 juil. 2010 à 16:52
Puis-je voir le code complet du formulaire et du php ?
0
zuddap Messages postés 71 Date d'inscription mardi 23 septembre 2008 Statut Membre Dernière intervention 20 juillet 2010
19 juil. 2010 à 16:59
if (isset($btn_valideproduit))
{
echo "Récapitulatif de votre commande :

";

for ($i=0;$i<count($_POST['choixplat']);$i++)
{
$plat[$i] = $_POST['choixplat'][$i];
}
for ($i=0;$i<count($_POST['choixboissons']);$i++)
{
$boisson[$i] = $_POST['choixboissons'][$i];
}
for ($i=0;$i<count($_POST['choixdessert']);$i++)
{
$dessert[$i] = $_POST['choixdessert'][$i];
}


echo "\";
echo \"<form name='choix_finchoix' method='post' action='commande.php'>\";
echo \"----
Plat, Quantité, \";

foreach ( $plat as $contenuPlat )
{
$chaine= explode(\"/\", $contenuPlat);
$idproduit = $chaine['0'];
$libelleproduit = $chaine['1'];

echo \"----
, , \";
}
foreach ( $boisson as $contenuBoisson )
{
echo \"----
, , \";
}
foreach ( $dessert as $contenuDessert )
{
echo \"----
, , \";
}

echo "
";
echo "
";
echo "";
echo "</form>";
}



if (isset($btn_fin))
{
$valeur = $_POST["plat".$idproduit];
echo $valeur;

}
0
cs_ludwig59 Messages postés 128 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 6 mai 2011 2
19 juil. 2010 à 17:21
Après ton formulaire, il faudrait mettre :

if (isset($_POST['btn_fin'])) 
{ 

  // je suppose que tu as récupéré la variable $plat auparavant
  foreach ( $plat as $contenuPlat )
  { 
     $chaine= explode("/", $contenuPlat); 
     $idproduit = $chaine['0']; 
     $libelleproduit = $chaine['1']; 
     $valeur = $_POST["plat".$idproduit];
     echo "plat : ".$libelleproduit." valeur : ".$valeur; 
   }

} 

0
zuddap Messages postés 71 Date d'inscription mardi 23 septembre 2008 Statut Membre Dernière intervention 20 juillet 2010
19 juil. 2010 à 17:33
Excuse moi je suis un peut perdu la comme je peut récupéré la variable plat que tu met dans le foreach ?
0
zuddap Messages postés 71 Date d'inscription mardi 23 septembre 2008 Statut Membre Dernière intervention 20 juillet 2010
19 juil. 2010 à 17:36
DSl j'avais pas suivi

il me sort " Invalid argument supplied for foreach() in /......."
0
zuddap Messages postés 71 Date d'inscription mardi 23 septembre 2008 Statut Membre Dernière intervention 20 juillet 2010
20 juil. 2010 à 09:05
Dsl du retard, je vient de tester avec le champs caché et ... ça marche merci de ton aide, cette idée est vraiment bien de combiné les champs caché et la concaténation ["plat".$idproduit]. Encore merci ludwig59 !
0
cs_ludwig59 Messages postés 128 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 6 mai 2011 2
20 juil. 2010 à 09:23
De rien, content d'avoir pu t'aider
0
Rejoignez-nous