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 : 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
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 : 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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <div id='depar'> <select size='1' id='dep' name='dep'> //remplissage du select </select> </div>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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!!![]()
Partager