8710 sujets

Développement web côté serveur, CMS

Bonjour,
je débute en PHP et j'ai un petit problème. lorsque que je crée un liste avec <select> et que je fais une boucle <option> avec foreach je perds la clef de mon array.
Voici mon code

<?php
$arraypays = array(
'France' => 'Paris',
'Angleterre' => 'Londres',
'Belgique' => 'Bruxelles',
'Allemagne' => 'Berlin',
);

?>
<form action="test.php" method="post">
<?php
echo '<select name="ville">';
foreach($arraypays as $pays => $capital)
{
echo '<option value="' .$pays.'>' .$capital. '</option>';
}
echo '</select>';
?>
<input type="submit" name="valider">
</form>

if(isset($_POST['valider']))


et la je suis perdu car je n'arrive pas a récupérer la cle de mon array $pays.
Je voudrai afficher " $capital est la capital de $pays"

Merci d'avance
j'aimerai faire


 if (!empty($_POST['ville']))
		 {
		 echo $_POST['vile'].' est la capitale de  ' $_POST['pays'];
		 
		 }


le pays n'apparais pas et je ne sais pas comment faire.

$arraypays = array(
  'France' => 'Paris',
  'Angleterre' => 'Londres',
  'Belgique' => 'Bruxelles',
  'Allemagne' => 'Berlin',
);

if (!empty($_POST['ville']))
{
  echo $arraypays[$_POST['ville']] . ' est la capitale de  ' . htmlentities($_POST['ville']);
}
Ce que j'aimerai c'est lorsque je choisi la capitale le nom du pays s'affiche.
voici le code


<?php
$arraypays = array(
'France' => 'Paris',
'Angleterre' => 'Londres',
'Belgique' => 'Bruxelles',
'Allemagne' => 'Berlin',
);
 echo'<pre>';
 print_r($arraypays);
 echo'</pre>';
?>
<form action="test8.php" method="post">
<?php
echo '<select name="ville">';
foreach($arraypays as $pays => $capital)
{
echo '<option value="' .$pays.'>' .$capital. '</option>';
}
echo '</select>';
?>
<input type="submit" name="valider">
</form>
<?php
if (isset($_POST['ville']))
{
  echo ($_POST['ville']) . ' est la capitale de  ' . htmlentities($_POST['ville']);
}
?>
if (isset($_POST['ville']))
{
echo ($_POST['ville']) . ' est la capitale de ' .
foreach($arraypays as $pays => $capital)
{
if($_POST['ville']==$capital){echo $pays;break;}
}

}

ps : pas de htmlspecials char sur du post ? :') pas de is_string sur du post ? \o/ houra les failles
htmlentities échappe les caractères spéciaux HTML aussi. is_string pour valider du POST c'est lol. Les données POST sont toutes de type string. Boucler sur un tableau pour trouver une valeur dont on connait la clé c'est double lol.

Bref...
Modifié par jb_gfx (15 Mar 2013 - 18:40)
sidra a écrit :
Ce que j'aimerai c'est lorsque je choisi la capitale le nom du pays s'affiche.


La réponse que je t'ai donné fonctionne très bien. Ton problème c'est qu'il manque un " dans ta balise option.