Bonjour à tous !
Me revoilà avec un nouveau problème à me faire perdre les rares cheveux qu'il me reste !
Voici le problème :
Dans une page commande_client2.php je crée un formulaire qui m'affiche les champs d'une base article (champs filtrés selon un paramètre donné que j'ai récupéré via un autre formulaire situé dans commande_client1.php). Même s'il m'a fallu pas mal tâtonner et apprendre sur le tas, je débute en php, jusque là pas de souci, c'est après que ça corse. Mais d'ors et déjà voici mon code de commande_client2.php :
Le formulaire ci dessus a pour vocation de renseigner pour chaque produit, une quantité. Ainsi, dans une nouvelle page commande_client3.php, je cherche à écrire dans une table les valeurs (qté) saisies dans le précédent formulaire pour chaque article (du formulaire!). Or je n'ai aucune écriture !! Ni même d'erreur !! Juste une page blanche ... Voici le code de mon commande_client3.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 <?php try{$bdd = new PDO('mysql:host=localhost;dbname=les_zechoppes;charset=utf8', 'root', '');} catch(Exception $e){die('Erreur : '.$e->getMessage());} $id_echoppe = $_POST['id_echoppeF']; $reponse = $bdd->query("SELECT produit.nom as nom_produit, produit.id as id_produit, fournisseur.nom as nom_fournisseur FROM produit INNER JOIN fournisseur ON produit.id_fournisseur=fournisseur.id WHERE fournisseur.id_echoppe=$id_echoppe"); ?> <form name="commande" method="post" action="commande_client_3.php"> <?php while ($donnees = $reponse->fetch()) { ?> quantité de <?php echo '<b>'.$donnees['nom_produit'].'</b> (fournisseur : <b>'.$donnees['nom_fournisseur'].'</b>)'; ?> : <input type="texte" name=<?php echo $donnees['id_produit']; ?>> <br/> </p> <?php } ?> <br/><br /> <input type="submit" value="CONTINUER"> </form> <?php $reponse->closeCursor(); ?>
Au début j'ai soupçonné que mes $key et $value soient vides, j'ai donc voulu les afficher pour m'en assurer, avec un echo :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <?php try{$bdd = new PDO('mysql:host=localhost;dbname=les_zechoppes;charset=utf8', 'root', '');} catch(Exception $e){die('Erreur : '.$e->getMessage());} foreach($_POST as $key => $value) { $req = $bdd->exec('INSERT INTO ligne_cde_client(id_produit,quantite) VALUES (int)$key, (int)$value'); } ?>
Et là s'affiche bien toutes les valeurs que je souhaite écrire dans ma table, preuve que mon &_POST contient bien ce que je veux ! Voici en copier/coler dans mon exemple ce que ça affiche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <?php try{$bdd = new PDO('mysql:host=localhost;dbname=les_zechoppes;charset=utf8', 'root', '');} catch(Exception $e){die('Erreur : '.$e->getMessage());} foreach($_POST as $key => $value) { $req = $bdd->exec('INSERT INTO ligne_cde_client(id_produit,quantite) VALUES (int)$key, (int)$value'); } foreach($_POST as $key => $value) { echo 'id_produit='.$key.' ,quantite='.$value.'<br/>'; } ?>
id_produit=1 ,quantite=1001
id_produit=2 ,quantite=1002
id_produit=3 ,quantite=1003
id_produit=4 ,quantite=1004
id_produit=5 ,quantite=1005
id_produit=6 ,quantite=1006
id_produit=7 ,quantite=1007
id_produit=8 ,quantite=1008
id_produit=9 ,quantite=1009
id_produit=10 ,quantite=1010
id_produit=11 ,quantite=1011
id_produit=12 ,quantite=1012
ET POURTANT MA TABLE RESTE VIDE. Rhaaaaaa !
Auriez vous une idée lumineuse ?
Merciiiiiiiii
Partager