Bonjour,
Je suis actuellement en train de développer un petit module sous la forme de quelques pages php (avec mon fidèle notepad++). Ces pages s'intègrent dans notre site Internet développé par un prestataire.
En gros, les utilisateurs devront y déclarer leurs chiffres chaque mois.
Aussi, dans mon formulaire de déclaration, j'ai une liste déroulante (issue d'une fonction dans un fichier inclus fonctions.php, cf code ci-dessous) de 13 items (blanc par défaut + les 12 mois). Une fois le formulaire validé, il est représenté pour relecture, les champs sont les mêmes (liste déroulante pour les mois, donc).
Le problème, c'est que les mois avec accents (transmis en post) ne sont pas remis dans la liste
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 function ListeMois($lemois){ $lesmois=array("","Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"); //j'ai fait exprès de mettre tantôt les accentués en html, tantôt en dur pour tester $listemois = '<select id="fmois" name="fmois" onchange="change(this.select)">'; foreach($lesmois as $valeur){ if ($lemois==$valeur) { $listemois .= '<option value="'.$valeur.'" selected="selected">'.$valeur.'</option>'; } else { $listemois .= '<option value="'.$valeur.'">'.$valeur.'</option>'; } } $listemois .= '</select>'; return $listemois; }
Pour cause, si je fais un echo de la variable, j'ai un beau "Février"
Donc un énième souci d'encodage...
Sachant que :
- mon prestataire m'a recommandé d'encoder mes pages php en iso-8859-1 (charset du serveur)
- que le header (fourni par le prestataire) présente les pages en utf-8 (qui est donc l'encodage appelé par défaut par le navigateur)
- que la base de données mysql est en utf8, interclassement latin_swedish_ci (mais là je ne fais même pas appel à la db pour cette liste... j'ai aussi des galères avec les valeurs en base mais ce sera un autre topic si je ne m'en sors pas :/)
[edit] : précision, les mois sont TOUS bien écrits dans la liste déroulante (que ce soit février ou août dans l'array)
Que puis-je tester pour arriver à mes fins (à part mettre mes mois sans accents ^^)
Merci d'avance pour vos lumières,
Bill
Partager