Bonjour,

Débutante en PHP, je cherche à rédiger une fonction permettant, en sélectionnant une note de musique française à partir d'un menu déroulant, à afficher la note américaine correspondante. Cependant, mon code semble comporter des erreurs sans que je saches lesquelles.

Voici mon code:

<?php
$notes = array('do' => 'C', 'ré' => 'D', 'mi' => 'E', 'fa' => 'F', 'sol' => 'G', 'la' => 'A', 'si' => 'B');
?>

<form action="devoir-1.php" method="post">
<?php
echo '<select name="choix">';
foreach ($notes as $clef => $valeur)
{
echo '<option value= "$clef" >' . $clef . '</option>';
}
echo '</select>';
?>
<input type="submit" name="valider">
</form>
<?php
if ((!empty($_POST['choix']))AND (isset ($_POST['valider'])))
		 {
		 echo 'la notation américaine pour la note ' .($_POST['choix']) . ' est la note ' . $valeur;
		 		 }
		 ?>


Pourriez-vous m'aider sur ce point?

Merci Smiley cligne
En plus du message d'erreur, la note obtenue ne correspond pas à la valeur souhaitée...

Merci pour votre aide!
Le message d'erreur te dis qu'il ne trouve pas l'index "choix" dans ton tableau $notes.

Le formulaire pointe vers un script devoir-1. Donc si c'est un devoir essaie de comprendre tes erreurs. c'est comme ça que tu vas avancer.

Voici un script "note.php' pour t'aider :

<?php
//debug
//var_dump($_POST);
$notes = array('do' => 'C', 'ré' => 'D', 'mi' => 'E', 'fa' => 'F', 'sol' => 'G', 'la' => 'A', 'si' => 'B');
$html = '';
if(isset($_POST['choix'])){
	$html = "la notation américaine pour la note ' ".$_POST['choix']." ' est la note ' " . $notes[$_POST['choix']] . " '";
}

?>
<form action="note.php" method="post">
<select name="choix">
<?php foreach($notes as $clef_fr => $clef_us): ?>
<option value="<?php echo $clef_fr; ?>" ><?php echo $clef_fr; ?></option>
<?php endforeach; ?>
</select>
<input type="submit" name="valider">
</form>
<?php
echo $html;
?>
Merci beaucoup pour ton aide! Effectivement, il s'agit d'un devoir pour une formation que je suis à distance. Et cela fait plusieurs jours que je cherche d'où vient mon erreur...

Je vais essayer de décortiquer ton code pour voir où j'ai foiré mais je constate déjà que tu ne place pas les balises php au même endroit que toi. Ton code est déjà beaucoup plus clair que le mien!

Merci encore! Smiley cligne