Page 1 sur 1

formulaire vide

Posté : 20 avr. 2016, 22:40
par Sim88
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 -";

Re: formulaire vide

Posté : 21 avr. 2016, 08:20
par Spols
essaye un var_dump($_POST); en début de 2ème script pour vérifier que tu y reçois les infos

Re: formulaire vide

Posté : 21 avr. 2016, 16:11
par Ryle
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 :))

Re: formulaire vide

Posté : 22 avr. 2016, 17:21
par Sim88
bien vu !!!! c'était bien cette variable $nbr_produit qui plantait le transfert des données.
Un grand merci pour votre aide