[Formulaire] Récupérer données for

Résolu/Fermé
patrice86 Messages postés 1378 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 26 novembre 2023 - Modifié par patrice86 le 3/05/2014 à 14:03
patrice86 Messages postés 1378 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 26 novembre 2023 - 5 mai 2014 à 19:29
Bonjour,

Je suis entrain de développer un site internet dans lequel j'ai besoin d'inclure une sorte de panier de commande.

L'utilisateur choisit son nombre d'articles (exemple 3) ce qui l'amène à une page avec 3 lignes composés comme suit :
  public function composerCommande($produit){
$res="<form method='post' action='private.php?action=savecomposer'>";
$res.="<div class='form'>";
for ($i = 1; $i <=$produit;$i++) {
$res.="<p><label for='ref'>Ref. Produit</label> : <input type='text' name='ref' id='ref' /><label for='qte'>Qté</label> : <input type='text' name='qte' id='qte' /></p>";
}
$res.="</div>";
return $res;

}
Comme vous pouvez le voir, chacune des lignes est composées d'un input pour la référence du produit et à côté un autre input pour la quantité.

Hors, dans le cas où j'ai plusieurs lignes qui s'affichent (suite au nombre sélectionné avant), comment faire pour récupérer les données une par une pour ensuite les enregistrées dans ma BDD.

Merci à vous =)
A voir également:

4 réponses

Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
3 mai 2014 à 14:15
Bonjour,
Vu que tu a un compteur ($i) tout prêt, autant l'utiliser.
Au lieu de nommer tes champs ref ou qte, nomme à l'aide de se compteur ref_".$i." (qui deviendra donc par exemple ref_1).

Ensuite, pour la récupération deux solutions :
Tu stock la valeurs du compteur final dans un champ caché pour une nouvelle boucle for
Tu fait un while($_POST["ref".$i]) pour tous les récupérer jusqu'à ce que le champ n'existe pas (ça ne permet cependant pas de gérer les "trous" (Si l'utilisateur rentre la première et la troisième ligne, mais pas la deuxième, contrairement à la première solution)
0
patrice86 Messages postés 1378 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 26 novembre 2023 125
Modifié par patrice86 le 3/05/2014 à 18:48
En faite je fais cela en méthode MVC, donc par fichier découpé.

private.php appel formater.php
$content=$formater->composerCommande($produit);

et formater.php contient la fonction donnée au dessus :
  public function composerCommande($produit){
$res="<form method='post' action='private.php?action=savecomposer'>";
$res.="<div class='form'>";
for ($i = 1; $i <=$produit;$i++) {
$res.="<p><label for='ref'>Ref. Produit</label> : <input type='text' name='ref' id='ref' /><label for='qte'>Qté</label> : <input type='text' name='qte' id='qte' /></p>";
}
$res.="</div>";
return $res;

}


Donc de cette façon, c'est private.php qui doit récupérer les données qui sont indiquées dans le formater.php

Ensuite, une fois que private.php à récupérer les données, il appel dbhandler.php qui va faire l'insertion dans la base de données :


$p=new Composer($_POST("ref_pro"],$_POST["qte"]);
$id=$dbHandler->createComposer($p);

Et là, je coince =)

Google est ton ami :)
0
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
3 mai 2014 à 20:17
Que tu soit en MVC ou non, mon code fonctionne, tu a juste à l'adapté légèrement.

Dans ton fichier formater.php tu peut y effectué le premier changement que je t'ai montré (rajouter le compteur dans le name, plus un p'tit input hidden pour la compteur)

Dans ton fichier private.php, tu y mets ta boucle :
for($i=0;$i<=$_POST["compteur"];$i++){
   $p=new Composer($_POST("ref_".$i],$_POST["qte_".$i]);
   $id=$dbHandler->createComposer($p);
}


(Je n'ai pas de serveur sous la main pour tester ça, mais dans l'idée c'est ça, après il faut bien entendu veiller à sécurisé la variable compteur (numérique et supérieur à 0))
0
patrice86 Messages postés 1378 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 26 novembre 2023 125
Modifié par patrice86 le 5/05/2014 à 19:41
Merci bien fonctionne parfaitement =)

Une nouvelle question :
Sais-tu comment générer un diagramme UML complet de toutes les classes de mon code PHP (avec les relations...).

j'ai installé le package php_uml de pear mais je ne comprend pas comment l'utiliser
https://forums.commentcamarche.net/forum/affich-30165105-php-uml-probleme-d-utilisation


Google est ton ami :)
0