bonjour
voila mon probleme:
Je recupere d'une base mysql des donnees avec pour certaines, des accents
je le met dans un fichier php qui encode en xml (departement.php)!
dans un autre fichier je recupere ces meme donnees pour les afficher dans une liste deroulante en html (pageap.php).
le probleme c'est que tous les accents sont remplacé par des ?
Je pense que c'est un probleme d'encodage.
Je pense que c'est au niveau de la recuperation du xml
La base est encode en utf-8
le fichier php qui encode en xml est le suivant:
page departement.php
et mon code js pour recuperer les donnees du dessus se trouve dans une page nomee fonction.js appeler par:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 <?php header('Content-Type: text/xml'); echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; if($_GET['id']!="") { $idpays=$_GET['id']; $req='select id_departement,nom_departement,code_departement from departement where id_pays_departement="'.$idpays.'" order by nom_departement'; $res=mysql_query($req); $taille = mysql_num_rows($res); $i=0; if($taille>0) { echo "<exemple>\n"; while(list($iddep,$nom,$code)=mysql_fetch_row($res)) { echo('<donnee id="'.$iddep.'" res="'.$nom.'" res2="'.$code.'"/>'); } echo('</exemple>'); } } }} ?>
<script language="JavaScript" type="text/javascript" src="fonction.js"></script>
voici son code:
et le code html de basede la page (pageap.php) est :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70 function departement() { var numFile = 0; var xhr=null; var id=document.form_ann.pays.value; url="departement.php?id="+id; if (window.XMLHttpRequest) { xhr = new XMLHttpRequest(); } else if (window.ActiveXObject) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } //on définit l'appel de la fonction au retour serveur xhr.onreadystatechange = function() { depactu(xhr); }; //on appelle le fichier reponse.txt xhr.open("get", url, true); xhr.send(null); } //creationd des div! function depactu(xhr) { var docXML= xhr.responseXML; var items = docXML.getElementsByTagName("donnee"); nbelement=items.length; tab=new Array(); for(itab=0;itab<nbelement;itab++) { tab[itab]=new Array(); e = items.item(itab); //recuperation des nouvelles donees resxml=e.getAttribute("res"); idxml=e.getAttribute("id"); resxml2=e.getAttribute("res2"); tab[itab]["id"]=idxml; tab[itab]["res"]=resxml; tab[itab]["res2"]=resxml2; } del(); //supprime le bloc existant selects=document.createElement("select"); //remplissage du nouveau select selects.setAttribute("name","dep"); selects.setAttribute("id","dep"); selects.setAttribute("size","1"); for (i=0;i<tab.length;i++) { opt = document.createElement('Option'); opt.innerHTML = ''; opt.value = tab[i]["id"]; texte=document.createTextNode(tab[i]["res2"]+"-"+tab[i]["res"]); opt.appendChild(texte); selects.appendChild(opt); } document.getElementById("depar").appendChild(selects); } function del() { p1=document.getElementById("depar"); p=document.getElementById('dep'); kill=p1.removeChild(p); }
Cette derniere a un entete de ce type:Code:
1
2
3
4
5 <div id='depar'> <select size='1' id='dep' name='dep'> //remplissage du select </select> </div>
Code:
1
2
3
4 <!DOCTYPE html "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'."\n".' <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">'."\n".' <head><meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />'."\n
MErci pour reponses!!
tiger63
KE le tigre soit en toi!!:yaisse2: