Salut à tous,

J'ai récupéré un menu fait en 3 listes dédoulante sur le net. je l'ai adapter, il marche impec.
ces 3 listes déroulante se remplissent en allant chercher leurs contenu dans une bdd.chaque menu déroulant est un page séparée, applelée en include dans la page de mon menu.

Dans ma bdd, les caratères comme les "é", "è", sont lisible.
Dans ma première liste déroulate, ils sont lisible aussi, mais pas dans les 2 autres. J'ai à la place un losange avec un point d'interrogation dedans, comme si le navigateur ne trouvait pas le caractère à afficher.

J'ai essayer en rajoutant ça dans les pages, mais ça marche pas :

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />


voilà le code du premier menu déroulant (lui ne pose pas de prob) :

<?PHP
include 'biblio/UtilsBD.php';
$connexion = Connexion (NOM, PASSE, BASE, SERVEUR);
$rq="SELECT * FROM categorie WHERE cat_id<=99 ORDER BY cat_id ASC;";
$rq_pos_id=0; //position dans le SQL de la clé de la liste déroulante idem dans ValideLd2.php et ValideLd3.php
$rq_pos_val=1; //position dans le SQL de la valeur de la liste déroulante idem dans ValideLd2.php et ValideLd3.php 

$result= mysql_query ($rq) or die ("Select impossible");
$retour = '<select name="cat_id_level1" id="Liste1" size="1" onchange="ValideLd2(this[this.selectedIndex].value);">';
$retour .= '<option selected value="">Choisissez une catégorie</option>';
if (mysql_num_rows($result) != 0) {
	while ($row = mysql_fetch_row($result)) {
		$retour .= '<option value="'. $row[$rq_pos_id] .'">'. $row[$rq_pos_val] .'</option>';
		}
		$retour .= '</select>';
} else {
	$retour = '<input id="size" type="text" size="10" value="Aucune valeur" disabled>';
}
mysql_free_result($result);
mysql_close($connexion);
echo $retour
?>


et voilà le code du deuxième, qui lui affiche les points d'interrogation :


<?php
include 'biblio/UtilsBD.php';
$connexion = Connexion (NOM, PASSE, BASE, SERVEUR);
$Ld1_retour =''; //id_département clé de la liste déroulante 1

if (isset($_GET['Ld1'])) {$Ld1_retour = $_GET['Ld1'];}

if ($Ld1_retour!='') {
	$rq="SELECT * FROM categorie WHERE cat_id>=99 AND cat_id <=9999 AND cat_id LIKE '$Ld1_retour%' ORDER BY cat_id ASC ;";
	$rq_pos_id=0;
	$rq_pos_val=1;
	$result= mysql_query ($rq) or die ("Select impossible");
	$retour = '<select name="cat_id_level2" id="Liste2" size="1" onchange="ValideLd3(this[this.selectedIndex].value);">';
	$retour .= '<option selected value="">Sous catégorie (facultatif)</option>';

	if (mysql_num_rows($result) != 0) {
		while ($row = mysql_fetch_row($result)) {
			$retour .= '<option value="'. $row[$rq_pos_id] .'">'. $row[$rq_pos_val] .'</option>';
		}
		$retour .= '</select>';
	} else {
		$retour = '<input id="Liste2" type="text" size="10" value="Aucune valeur" disabled>';
	}
	mysql_free_result($result);
	mysql_close($connexion);
}else{
	$retour = '<select name="Liste2" id="Liste2" size="1" disabled><option>Aucune valeur</option></select>';
}	
echo $retour
?>


Avez vous une idée de ce qu'il faut que je fasse pour affich normalement le contenu de ma bdd (Mysql en UTF-8 Unicode (utf8), et latin1_swedish_ci).

Merci d'avance pour votre aide
+
DaD
Ah ben forcément, entre une base mysql en utf-8 et un meta iso-8859-1, ça ne peut pas fonctionner Smiley cligne . Si tu bosses en utf-8, il faut que toute la chaîne soit en utf-8 :

- codage de la base en utf-8
- requête spécifiant l'utilisation de l'utf-8. Juste après t'être connecté à mysql genre avec mysql_connect, assure-toi d'avoir fait un
mysql_query('SET NAMES utf8');

Attention, c'est utf8, pas utf-8

- header HTTP précisant l'utf-8, en mettant un :
header('Content-Type: text/html; charset=utf-8');

Attention à le mettre avant tout envoi de données au client

- Meta reprenant le header au cas où :
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />