[PHP] incrémentation de $_POST[] ...
Résolu
Erdnax
Messages postés
2273
Date d'inscription
Statut
Contributeur
Dernière intervention
-
kilian Messages postés 8732 Date d'inscription Statut Modérateur Dernière intervention -
kilian Messages postés 8732 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour à tous,
Alors voilà mon problème. J'aimerais dans un script php récupérer des variables transmises par formulaire par la méthode POST. Mon problème provient du fait que le formulaire ne possède pas un nombre de champ définis. Il se trouve dans une boucle et donc pour chaque enregistrement de ma base de données un certain nombre de champs est généré.
Les noms des différents champs sont les même (img1, cat_id1, etc...), à part le dernier numéro qui s'incrémente au fur et à mesure de la page.
Alors mon problème, est-il possible de récupérer chaque champ dans une boucle php par la méthode POST et rajoutant au nom de variable le numéro adéquat ? Par exemple (non fonctionnel...) :
Alors voilà mon problème. J'aimerais dans un script php récupérer des variables transmises par formulaire par la méthode POST. Mon problème provient du fait que le formulaire ne possède pas un nombre de champ définis. Il se trouve dans une boucle et donc pour chaque enregistrement de ma base de données un certain nombre de champs est généré.
Les noms des différents champs sont les même (img1, cat_id1, etc...), à part le dernier numéro qui s'incrémente au fur et à mesure de la page.
Alors mon problème, est-il possible de récupérer chaque champ dans une boucle php par la méthode POST et rajoutant au nom de variable le numéro adéquat ? Par exemple (non fonctionnel...) :
$nb = $_POST['nb']; //nombre d'enregistrements $i = 1 ; while ($i < $nb){ $img = $_POST['img'.$i]; $cat_id = $_POST['cat_id'.$i]; }D'avance merci à ceux qui pourront m'aider et/ou trouver des solutions alternatvies ;)
A voir également:
- Php incrémentation
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php ✓ - Forum PHP
- Php alert ✓ - Forum PHP
- Alert PHP - Forum PHP
10 réponses
Salut,
Tout paraît bon, mais $img et$cat_id sont sans cesse ecrasés par leur valeur suivante (exemple: $img sera égal à $_POST['img1'] puis après sera égal à $_POST['img2'].
Donc utilise un tableau:
Tout paraît bon, mais $img et$cat_id sont sans cesse ecrasés par leur valeur suivante (exemple: $img sera égal à $_POST['img1'] puis après sera égal à $_POST['img2'].
Donc utilise un tableau:
while ($i < $nb){ $img[$i] = $_POST['img'.$i]; $cat_id[$i] = $_POST['cat_id'.$i]; }
En fait c'est égal que les variables soient automatiquement écrasée ou non. Elles sont tout de suite traitée, puis après sont inutiles donc pas d'importance.
Par contre, tu peux me confirmer que la méthode $_POST[] accepte que l'on lui balance des variable ? ('cat_id'.$i)
@+
Par contre, tu peux me confirmer que la méthode $_POST[] accepte que l'on lui balance des variable ? ('cat_id'.$i)
@+
Oui, comme l'index d'un tableau est une chaine :
=> $tableau ['chaine']
...tu peux parfaitement faire un travail sur cette chaine comme tu le fais avec la concatenation.
Vérifie d'abord que ton post possède vraiment ces index.
Fais un echo sur tes $_POST['img'.$i] dans ta boucle, comme ça tu verras bien...
=> $tableau ['chaine']
...tu peux parfaitement faire un travail sur cette chaine comme tu le fais avec la concatenation.
Vérifie d'abord que ton post possède vraiment ces index.
Fais un echo sur tes $_POST['img'.$i] dans ta boucle, comme ça tu verras bien...
Bon, alors voilà mon code :
Pourtant mon formulaire fonctionne, car lorsque je traite image par image (sans la boucle, avec des données fixes) cela marche.
Donc d'où vient mon bug ?
EDIT : la seule chose qui s'affiche est mon "Les données ont bien été enregistrées".
$nb = $_POST['nb']; $i = 1; while ($i < $nb){ $img = $_POST['img'.$i]; $cat_id = $_POST['cat_id'.$i]; $comm = $_POST['comm'.$i]; $i++; $requete = "UPDATE images SET cat_id='$cat_id', img='$img', comm='$comm', susp='false' WHERE img='$img'"; mysql_query($requete); echo 'Cat_id : '.$cat_id."<br>\n"; echo 'Img : '.$img."<br>\n"; echo 'Comm : '.$comm."<br>\n"; } echo 'Les données ont bien été enregistrées.<br>'."\n";Le truc, c'est que ma table n'est pas mise à jour, et que mes echo ne donnent rien...
Pourtant mon formulaire fonctionne, car lorsque je traite image par image (sans la boucle, avec des données fixes) cela marche.
Donc d'où vient mon bug ?
EDIT : la seule chose qui s'affiche est mon "Les données ont bien été enregistrées".
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Et quand tu essaies
echo $_POST['img'.$i]
Ca ne donne rien?
C'est dans une fonction tout ça ou c'est global?
echo $_POST['img'.$i]
Ca ne donne rien?
C'est dans une fonction tout ça ou c'est global?
C'est global... c'est pour ça que j'ai posté ici, je comprends pas pourquoi ça ne marche pas... Mais je vais continuer à faire des test ce soir.