Page 1 sur 1

Insertion variable dans l'attribut d'une variable prédéfinie

Posté : 26 avr. 2012, 13:49
par ocre_rouge
Bonjour,

Dans l'intention de raccourcir le code ci-dessous, je souchetais connaitre la méthode permettant d'insérer une variable au sein de l'attribut d'une variable prédéfinie (en l'occurrence, $_POST).

Ceci me permettrait de passer de ceci :
				
				echo '<p>';
				echo htmlspecialchars($_POST["reponse1"]);
				$reponse1 = "pascaline";
				$compteur = 0;
				if ($_POST["reponse1"]==$reponse1) {
					echo "</br>";
					echo "échec ";
					echo $compteur-1;
					$compteur=$compteur-1;
				}
				else {
					echo "</br>";
					echo "succès ";
					echo $compteur+1;
					$compteur=$compteur+1;
				}
				echo '</p>';
				echo '<p>';
				echo htmlspecialchars($_POST["reponse2"]);
				$reponse2 = "stylo";
				if ($_POST["reponse2"]==$reponse2) {
					echo "</br>";
					echo "échec ";
					echo $compteur-1;
					$compteur=$compteur-1;
				}
				else {
					echo "</br>";
					echo "succès ";
					echo $compteur+1;
					$compteur=$compteur+1;
				}
				echo '</p>';
				echo $compteur;
				
à cela :
				
				$i = 0;
				echo '<p>';
				echo htmlspecialchars($_POST["reponse"$i]);
				$reponse1 = "pascaline";
				$reponse2 = "stylo";
				$compteur = 0;
				for (;$i=7;) {
				if ($_POST["reponse"$i]==$reponse$i) {
					echo "</br>";
					echo "échec ";
					echo $compteur-1;
					$compteur=$compteur-1;
				}
				else {
					echo "</br>";
					echo "succès ";
					echo $compteur+1;
					$compteur=$compteur+1;
				}}
				
Par avance, je vous remercie :)

Re: Insertion variable dans l'attribut d'une variable prédéf

Posté : 26 avr. 2012, 15:26
par Mazarini
$_POST['??????'] = '???????'
Ca doit marcher.
Mais il est mieux à mon avis de mettre les $_POST dans des variables pour travailler sur ces variables.

Re: Insertion variable dans l'attribut d'une variable prédéf

Posté : 26 avr. 2012, 16:14
par ocre_rouge
Merci :)

Je n'ai pas trop compris comment obtenir l'équivalent d'un $_POST["a"$b] à partir d'un $_POST['??????'] = '???????', mais effectivement, le plus propre est la 2nd solution que tu proposes :)

Re: Insertion variable dans l'attribut d'une variable prédéf

Posté : 26 avr. 2012, 18:32
par moogli
Salut,


Utilise foreach ou la concaténation !

Ta syntaxe n'est pas correcte.


@+

Re: Insertion variable dans l'attribut d'une variable prédéf

Posté : 03 mai 2012, 10:46
par ocre_rouge
Merci :)
Pour le moment, j'ai du mal a saisir l'intérêt de parcourir des tableaux, mais je vais creuser ça :)
(d'autant qu'apparemment, ça me permettra de comprendre la différence entre les deux types de boucle).

Re: Insertion variable dans l'attribut d'une variable prédéf

Posté : 03 mai 2012, 13:57
par Ryle
Un index de tableau n'est ni plus ni moins qu'une chaine de caractère. Si tu sais concaténer des variables et des chaines pour afficher des données à l'écran, tu peux tout aussi bien le faire pour construire tes index : $_POST["reponse" . $i] :)

Pour le foreach, l'intérêt est principalement de parcourir les tableaux associatifs sans avoir à connaitre le nom des différents index. Il permet également de simplifier la syntaxe de ton code quand tu ne connais pas le nombre de valeurs de ton tableau.

Par exemple, si tu as un tableau qui recense les mois de moins de 5 lettres :
$monTableau = array(
  3 => 'mars'
  , 5 => 'mai'
  , 6 => 'juin'
  , 8 => 'aout'
);
Déterminer que ta boucle for() ou ta boucle while() doit commencer à compter à 3, puis sauter 4 et 7 et enfin s'arrêter après 8 est nettement plus compliquée à écrire qu'un foreach qui va parcourir les éléments de ton tableau un par un sans se soucier de la logique de construction de celui-ci :)

Re: Insertion variable dans l'attribut d'une variable prédéf

Posté : 14 mai 2012, 11:33
par ocre_rouge
Merci beaucoup pour cet éclairage, Ryle :).