Bonjour a tous,

Je débute dans le PHP est je rame comme il faut...
J'ai un tableau "array" ayant comportant des valeurs et leurs correspondance

et je dois par un "bouton select" choisir une valeur et qu'ensuite une jolie phrase apparaisse "pour la valeur X la correspondance est Y"
et forcement je n'y arrive pas, je galère comme une bonne avec le FOREACH et certainement bien d'autres choses....

voici mon code

<?php
$données = array(1=>'A' , 12=>'B' , 23=>'F' , 34=>'G' , 45=>'A' , 56=>'B' , 67=>'C');
foreach ( $donées as $indice => $valeur );

?>

<form action="01.php"" metod="get" >
<p><label>Choisissez votre indice </label>
<select name="Indice_choisie">
<option value="1">1</option>
<option value="12">12</option>
<option value="23">23</option>
<option value="34">34</option>
<option value="45">45</option>
<option value="56">56</option>
<option value="67">67</option>
</select></p>
<p><input type="submit" value="Validation"/></p>
</form>

<?php
echo 'La correspondance de ' . $_GET[Indice_choisie];
echo ' est ' . $valeur;
?>


please help ...
salut,
tout d'abord penser à utiliser les balises codes appropriées pour l'envoi de code sur le forum.

Ensuite concrètement ta boucle foreach ne te servira qu'à générer ta liste. Une fois la valeur envoyée, il te suffira de récupérer la valeur de l'indice correspondant.

Avant de se lancer dans le code, il faut savoir qu'une balise <label> doit obligatoirement posséder un attribut "for" qui fera référence à l'ID de l'élément du formulaire à laquelle elle est reliée, si non, ça ne sert à rien.
Il faut aussi savoir que dans ce cas, il n'y a aucun intérêt à inclure tes éléments du formulaire dans des balises <p>. C'est apparemment un souci de mise en page (tu pourrais simplement les englober dans une <div>).
Un dernier truc, un formulaire est par défaut envoyé en "GET" donc inutile de spécifier cette méthode.


<form action="<?= $_SERVER["PHP_SELF"] ?>">
	<label for="liste">Choisissez votre indice</label>
	<select name="Indice_choisie" id="liste">
	<?php

		$données = array(1=>'A' , 12=>'B' , 23=>'F' , 34=>'G' , 45=>'A' , 56=>'B' , 67=>'C');

		foreach ($données as $indice => $valeur) {

	?>
		<option value="<?= $indice ?>"><?= $indice ?></option>
	<? } ?>
	</select>
	<input type="submit" value="Validation" />
</form>
<? 
	if (isset($_GET["Indice_choisie"])) {
		if (array_key_exists($_GET["Indice_choisie"], $données)) {
			echo 'La correspondance de '. $_GET["Indice_choisie"] .' est '. $données[$_GET["Indice_choisie"]];
		}
	}
?>


Ici, avant d'afficher quoi que ce soit, on vérifie d'abord l'existence de $_GET["Indice_choisie"] qui nous indique si le formulaire a bien été envoyé.
On fait ensuite une seconde vérification qui consiste à voir si l'indice demandé est bien présent dans le tableau "$données" grâce à array_key_exists, si non je pourrais entrer une valeur quelconque dans l'URL et une jolie erreur en sortirait.