Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2473 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Récupération de variables en boucle

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Récupération de variables en boucle

n°1364278
clemdups
Posté le 11-05-2006 à 15:21:51  profilanswer
 

Bonjour,
 
Je crée un formulaire qui a un nombre de champs variables (on choisi d'abord le nombre d'article à faire, et le formulaire est généré en fonction de ça). Le formulaire se génère sans souci. Voici son code : (où $nb est le nombre d'articles choisi, sur la page précédente).

Code :
  1. $nb=$_POST['nombre'];
  2. $i=0;
  3. while ($i<$nb) {
  4. echo "Article numero = <b>".$i."</b> : <br />
  5. Nom : <input type='text' name='sa_nom".$i." size='40'> <br /><br />
  6. Chapeau : <textarea name='sa_chapeau".$i."' cols='100' rows='5'></textarea> <br /><br />
  7. Nom du journaliste : <input type='text' name='sa_journaliste".$i." size='40'> <br /><br />
  8. Article : <textarea name='sa_article".$i."' cols='100' rows='20'></textarea> <br /><br />
  9. <hr>";
  10. $i++;
  11. }


 
Aucun souci quand je regarde le code source, il crée bien un "sa_nom0", "sa_nom1", etc etc...
 
Là où ça se gâte, c'est pour récupérer mes variables en boucle... :(
Voici le code que j'utilise :
 

Code :
  1. $i=0;
  2. while ($i!=$inc) {
  3. $sa_nom.$i = $_POST['sa_nom'.$i];
  4. $sa_chapeau.$i = $_POST['sa_chapeau'.$i];
  5. $sa_journaliste.$i = $_POST['sa_journaliste'.$i];
  6. $sa_article.$i = $_POST['sa_article'.$i];
  7. $i++;
  8. }


où je définis $inc comme étant le nombre d'articles (je le récupère à nouveau).
J'ai un peu essayé de retourner ça dans tous les sens (mais jamais dans le bon 'faut croire :( ), mais rien à faire, où bien il ne garde que la dernière valeur, ou bien il boucle sans s'arrêter... :(
 
Si quelqu'un sait m'aider... Merci ;)


Message édité par clemdups le 11-05-2006 à 15:23:44
mood
Publicité
Posté le 11-05-2006 à 15:21:51  profilanswer
 

n°1364291
flo850
moi je
Posté le 11-05-2006 à 15:30:13  profilanswer
 

essaye ${'sa_journaliste'.$i}


---------------

n°1364314
clemdups
Posté le 11-05-2006 à 15:39:31  profilanswer
 

flo850 a écrit :

essaye ${'sa_journaliste'.$i}


Merci de la réponse, mais hélas ça ne fonctionne pas.
Il me renvoie comme erreur qu'il ne trouve pas les variables... :(

n°1364319
flo850
moi je
Posté le 11-05-2006 à 15:41:24  profilanswer
 

et pourquoi tu ne stockerai pas plutot tes données dans un tableau ( c'est prevu pour a la base ) :  
$tab[$i]['sa_nom]=$_POST['sa_nom'.$i];


---------------

n°1364327
Djebel1
Nul professionnel
Posté le 11-05-2006 à 15:44:30  profilanswer
 

fais plutôt un tableau que de la concaténation de variable.
$sa_nom.$i devient $sa_nom[$i]
 
et fais plutôt ta boucle avec while($i < $inc) : on sait jamais, si t'as un bug et que $inc n'est pas un entier, la boucle sera infinie.

n°1364344
clemdups
Posté le 11-05-2006 à 15:55:15  profilanswer
 

Djebel1 a écrit :

fais plutôt un tableau que de la concaténation de variable.
$sa_nom.$i devient $sa_nom[$i]
 
et fais plutôt ta boucle avec while($i < $inc) : on sait jamais, si t'as un bug et que $inc n'est pas un entier, la boucle sera infinie.


 
Pour le "<" je l'ai fait, effectivement c'est pitete mieux :p
Concernant les tableaux, je vais m'y mettre dans ce cas (je suis pas très à l'aise avec, c'est le moment de le devenir :D ), merci de vos conseils.
 
Amicalement,

n°1364350
flo850
moi je
Posté le 11-05-2006 à 15:58:29  profilanswer
 

les tableaux associatifs sont tres tres tres pratique
 
en ne les utilisant, tu passe a cote d'une des principales fonctionnalités de php  
 
apres, tu utilise  
foreach($tab as $cle => $valeur){
 
}
 
pour le parcourir


---------------

n°1364369
Djebel1
Nul professionnel
Posté le 11-05-2006 à 16:16:24  profilanswer
 

ou par exemple
$x = 0;
while (isset($tab[$x])) {
    $x++;
}
si la clé est numérique

n°1364387
flo850
moi je
Posté le 11-05-2006 à 16:32:13  profilanswer
 

Djebel1 a écrit :

ou par exemple
$x = 0;
while (isset($tab[$x])) {
    $x++;
}
si la clé est numérique


 
ceci ne fonctionne qu'avec des clé consécutives
l'avantage du php est de permettre d'utiliser n'importe quoi comme clé ( des nombre, mais aussi des chaînes de caractères )


---------------

n°1364446
clemdups
Posté le 11-05-2006 à 17:01:21  profilanswer
 

Merci à tous !  
Ce forum est une merveille pour les petites entraides comme ça :) .
 
... et je me rends compte que les tableaux c'est effectivement puissant ! :)

mood
Publicité
Posté le 11-05-2006 à 17:01:21  profilanswer
 

n°1364487
flo850
moi je
Posté le 11-05-2006 à 17:30:42  profilanswer
 

quand la question est posée intelligement, il y a generalement une reponse intelligente ;)


---------------

n°1364535
Dj YeLL
$question = $to_be || !$to_be;
Posté le 11-05-2006 à 18:25:59  profilanswer
 

Pour info tu n'as même pas besoin d'utiliser Php pour générer tes champs.
 
Au lieu de mettre ça :
 
<input type='text' name='sa_nom".$i." size='40'>
 
Tu peux mettre ça :
 
<input type="text" name="sa_nom[]" size="40">
 
Tu récupère de l'autre côté un taleau sa_nom avec toutes les données dedans :)


---------------
Gamertag: CoteBlack YeLL
n°1364816
clemdups
Posté le 12-05-2006 à 10:04:53  profilanswer
 

Dj YeLL a écrit :

Pour info tu n'as même pas besoin d'utiliser Php pour générer tes champs.
 
Au lieu de mettre ça :
 
<input type='text' name='sa_nom".$i." size='40'>
 
Tu peux mettre ça :
 
<input type="text" name="sa_nom[]" size="40">
 
Tu récupère de l'autre côté un taleau sa_nom avec toutes les données dedans :)


 
ah oui en effet :)
Mais j'avoue que je préfère ma solution par soucis de clareté, je ne suis pas programmeur, juste bidouilleur :p .
Mais merci de l'info ;).
 
L'idéal serait de choisir le nombre de champs en direct, mais là je crois qu'on est dans le domaine du javascript non :D ?

n°1364835
flo850
moi je
Posté le 12-05-2006 à 10:24:47  profilanswer
 

oui  
 
et a mon avis , c'est loin d'etre l'ideal ;)


---------------

n°1364849
tania_j
Posté le 12-05-2006 à 10:36:29  profilanswer
 

Si ${'sa_journaliste'.$i} ne fonctionne pas... Pourquoi n'utilise pas une global ? ex:$GLOBALS['sa_journaliste'.$i] = ...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Récupération de variables en boucle

 

Sujets relatifs
Problème récupération daterécupèration de paramètres
probleme de boucle avec une date résoludesalouer variables post
Récupération du nom de fichierOptimisation récupération d'un gros tableau MySQL.
Boucle pour tester différentes textbox[php] récupération des noms de variables
pb un peu teubé surla récupération d'une variables dans une boucle ...[PHP] Création de variables dans une boucle et récupération?[Règlé]
Plus de sujets relatifs à : Récupération de variables en boucle


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR