par
yeste64 » 26 avr. 2011, 09:41
Bonjour à tous.
Je galère sur un problème d'accents depuis hier..
Voici mon problème :
Je possède un tableau de mots pouvant être accentués. Ce tableau me sert à alimenter une liste déroulante. Lorsque l'utilisateur fait son choix dans la liste, la valeur est stockée dans une variable de session dans la page pointée par le formulaire de la liste déroulante. Sur cette même page, l'utilisateur a possibilité de revenir à l'écran précédent pour pouvoir modifier son choix dans la liste déroulante.
Le problème : je stock donc l'option sélectionnée dans la liste et la mémorise dans une variable de session. Lorsque l'utilisateur revient sur le formulaire précédemment rempli, je pré-sélectionne le champ choisi auparavant dans la liste. Pour ce faire, je compare chaque valeur du tableau (qui alimente la liste déroulante) avec la valeur de la variable de session, et si elles sont égales, j'écris "checked" dans la balise <option> de ma liste déroulante. Sauf que lorsque l'utilisateur a choisi un mot accentué, le pré-remplissage ne marche pas... Pourtant, si j'affiche la valeur de la variable de session, le mot accentué apparaît sans soucis...
Voici le bout de code correspondant :
if(isset($_SESSION['motChoisi'])){
$motChoisi= $_SESSION['motChoisi'];
echo $_SESSION['motChoisi']; //Affiche correctement le mot accentué
echo $motChoisi; //Affiche correctement le mot accentué
}
foreach ($tableauDeMots as $mot)
{
echo "<option";
if (isset($motChoisi) && $mot == $motChoisi){
echo ' selected';
}
echo ">". utf8_encode($mot) ."</option>";
}
Merci d'avance à tous ceux qui essaieront de m'aider!
Bonjour à tous.
Je galère sur un problème d'accents depuis hier..
Voici mon problème :
Je possède un tableau de mots pouvant être accentués. Ce tableau me sert à alimenter une liste déroulante. Lorsque l'utilisateur fait son choix dans la liste, la valeur est stockée dans une variable de session dans la page pointée par le formulaire de la liste déroulante. Sur cette même page, l'utilisateur a possibilité de revenir à l'écran précédent pour pouvoir modifier son choix dans la liste déroulante.
Le problème : je stock donc l'option sélectionnée dans la liste et la mémorise dans une variable de session. Lorsque l'utilisateur revient sur le formulaire précédemment rempli, je pré-sélectionne le champ choisi auparavant dans la liste. Pour ce faire, je compare chaque valeur du tableau (qui alimente la liste déroulante) avec la valeur de la variable de session, et si elles sont égales, j'écris "checked" dans la balise <option> de ma liste déroulante. Sauf que lorsque l'utilisateur a choisi un mot accentué, le pré-remplissage ne marche pas... Pourtant, si j'affiche la valeur de la variable de session, le mot accentué apparaît sans soucis...
Voici le bout de code correspondant :
[php]
if(isset($_SESSION['motChoisi'])){
$motChoisi= $_SESSION['motChoisi'];
echo $_SESSION['motChoisi']; //Affiche correctement le mot accentué
echo $motChoisi; //Affiche correctement le mot accentué
}
foreach ($tableauDeMots as $mot)
{
echo "<option";
if (isset($motChoisi) && $mot == $motChoisi){
echo ' selected';
}
echo ">". utf8_encode($mot) ."</option>";
}
[/php]
Merci d'avance à tous ceux qui essaieront de m'aider!