[RESOLU] formulaire vide

Eléphanteau du PHP | 14 Messages

20 avr. 2016, 22:40

Bonjour
Je n'arrive plus à transférer des infos par "form method" entre 2 php : cela marchait, mais plus maintenant !!! j'ai surement modifié par accident qqs chose, mais j'avoue ne rien comprendre

le premier php est constitué d'une table de 4 text et 1 file par un nombre de ligne paramétrable
le second php récupère bien la variable cachée compteur2 mais rien de la table !!!
Avez vous une idée.
Merci par avance

1er php
<body>
<form method="post" action="ajout-produit3.php" enctype="multipart/form-data">
<br />
Code ------- Nom produit ---------- Prix produit - Description produit (poids-prix/kg) - Image produit
<table>
<?php
for ($i = $nbr_produit+1; $i <= $nbr_produit+$compteur; $i++)
{
?>
<tr>
<td>
<input type="text" size="8" name="code_produit<?php echo "$i"; ?>" value="<?php echo "$code$i"; ?>" >
</td>
<td>
<input type="text" name="nom_produit<?php echo "$i"; ?>" >
<input type="text" size="8" name="prix_produit<?php echo "$i"; ?>" > €
<input type="text" size="36" name="descrip_produit<?php echo "$i"; ?>" >
<input type="file" name="image_produit<?php echo "$i"; ?>" >
</td>
</tr>
<?php
}
?>
</table>
<input type = "hidden" name="compteur2" id="compteur2" value="<?php echo "$compteur"; ?>"> <br />
<input type="submit" value="Ajouter produits" />
</body>
2ème PHP : ajout-produit3.php
<?php
$compteur = $_POST['compteur2'];
echo "compteur : $compteur <br/>";

for ($n = 1; $n <= $compteur; $n++)
{
$code_produit = $_POST['code_produit'.$n];
$code = preg_replace('/\-?\d+/', '', $code_produit);
$nom_produit = $_POST['nom_produit'.$n];
$prix_produit = $_POST['prix_produit'.$n];
$descrip_produit = $_POST['descrip_produit'.$n];
$nom_im = $_FILES['image_produit'.$n]['name'] ;
$taille_im = $_FILES['image_produit'.$n]['size'];

echo "$n - $code_produit - $code - $nom_produit - $prix_produit - $descrip_produit - $nom_im - $taille_im - ok -";

Mammouth du PHP | 1967 Messages

21 avr. 2016, 08:20

essaye un var_dump($_POST); en début de 2ème script pour vérifier que tu y reçois les infos
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

21 avr. 2016, 16:11

Dans ton formulaire tu numérotes tes champs à l'aide de cette boucle :
for ($i = $nbr_produit+1; $i <= $nbr_produit+$compteur; $i++)
Dans le traitement à l'aide de cette boucle :
for ($n = 1; $n <= $compteur; $n++)
Si $nbr_produit est différent de 0, tu n'auras pas les mêmes numéros et tu ne retrouveras peut être pas les champs envoyées

Si tu remplaces la première boucle par
for ($i = 1; $i <= $compteur; $i++)
, ça devrait fonctionner (à voir ensuite si cela correspond à tes attentes :))
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 14 Messages

22 avr. 2016, 17:21

bien vu !!!! c'était bien cette variable $nbr_produit qui plantait le transfert des données.
Un grand merci pour votre aide