récupérer une variable déjà incrémentée en boucle While

Petit nouveau ! | 1 Messages

19 juil. 2010, 15:24

Bonjour,

Je viens de créer un formulaire HTML dans lequel on ne sait pas à l'avance combien de lignes il y aura. L'utilisateur définit dans un premier formulaire le nombre de lignes, que je récupère dans une variable $Nb

Chaque ligne contient 5 cases: Designation, Matiere, Couleur, QuantiteAnnuelle et QuantiteLivraison.

J'ai donc mis au point un script php qui va ajouter, dans une boucle while, les lignes du formulaire. Soit pour la ligne 1, des text inputs qui se nomment Article1, Couleur 1, Matiere1... Et évidemment pour la ligne 2, ce sera Article 2, Couleur2, Matiere2...

Ensuite, je souhaite récupérer mes variables et les envoyer par mail.

Je veux détailler le mail comme suit:

Article 1
Designation:
Couleur:
Matiere:
......
Article 2
Designation:
Couleur:
Matiere:

Et là où je tourne en rond, c'est pour récupérer automatiquement toutes ces variables dans une boucle while:

Je n'arrive tout simplement pas à concaténer le nom de ma variable avec le numéro qui la suit.

Disons que ma variable s'appelle $Article1 : comment faire pour concaténer le "$Article" avec le chiffre 1, afin de récupérer le contenu de la variable $Article1?

Code : Tout sélectionner

$y = 1; $z = $Nb + 1; while ($y < $z) { // Ecrire dans le mail le numéro de l'article (pas de souci) $message .= "Article " . $y . "\r"; // Ecrire dans le mail le détail des lignes qui suivent (et là, pas d'idée) // Première méthode ne fonctionne pas $message .= "Designation: " . $Article($y) . "\r"; // Du coup j'essaye avec eval mais je sais pas bien m'en servir $message .= "Matiere: " . eval("\$Matiere" . $y . ";") . "\r"; // Et enfin, eval avec echo, me renvoie une erreur $message .= "Couleur: " . eval("echo $Couleur" . $y . ";") . "\r"; $message .= "-----------------------------------\r"; $y ++; }

Quelqu'un peut-il m'éclairer svp?

ViPHP
ViPHP | 928 Messages

19 juil. 2010, 16:20

echo ${'Article' . $y};
fonctionne.

Cependant je te suggère de plutôt utiliser un tableau, c'est plus propre :
echo $articles[$y];

Eléphant du PHP | 314 Messages

19 juil. 2010, 16:52

echo ${'Article' . $y};
Was ist das ? o_o
Cordialement,
Julien - http://laravel.fr/

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

19 juil. 2010, 21:59

echo ${'Article' . $y};
Was ist das ? o_o
C'est une syntaxe pour les variables dynamiques :
$var = 'hello';
$hello = 'world';

// les syntaxes suivantes sont équivalentes et affichent toutes : "world"
echo $$var; 
echo ${$var}; 
echo ${'hello'};
echo ${'hel' . 'lo'};
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...