Bonjour @tous.

Je souhaite mettre à jour dynamiquement et sans rechargement de page un bloc dans ma page lors d'un clique sur un bouton. Je vous poste mon code qui fonctionne très bien sous firefox, mais absolument pas sous ie qui m'annonce qu'il y a des erreurs inconnues....

page.php :
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
 
 
<!-- Bloc mis à jour -->
<div id="contain">
 
   <p id="bloc"><?php echo $bio;?></p>
 
</div>
 
<div class="dl">
<a id="presse" onclick="javascript:go();" style="cursor:pointer;">Extraits de presse</a> | (t&eacute;l&eacute;charger)
</div>
 
<!-- Formulaire qui envoi un id récupéré dans AJAX.ext_press.php -->
<form>
  <input type="hidden" id="id_art" value="<?php echo $_GET['id_art'];?>" />
</form>
 
<!-- Script d'envoi d'une variable en POST à AJAX.ext_press.php-->
<script language="javascript" type="text/javascript">
 
// Renvoie le texte de l'objet ActiveXObject le plus récent depuis une liste
 
var pickRecentProgID = function (idList){
 
var bFound = false
 
for(var i=0; i < idList.length && !bFound; i++){
try{
					  var oDoc = new ActiveXObject(idList[i]);
					  o2Store = idList[i];
					  bFound = true;
}catch (objException){
 
};
 
 };
 
if (!bFound)
   throw ("Aucun ActiveXObject n'est valide sur votre ordinateur, pensez à mettre à jour votre navigateur");
idList = null;
 
 return o2Store;
}
 
// Retourne un nouvel objet XmlHttpRequest
var GetXmlHttpRequest_AXO=null;
var GetXmlHttpRequest=function () {
if (window.XMLHttpRequest) {
					return new XMLHttpRequest()
}
else if (window.ActiveXObject) {
  if (!GetXmlHttpRequest_AXO) {
		GetXmlHttpRequest_AXO=pickRecentProgID(["Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"]);
 }
   return new ActiveXObject(GetXmlHttpRequest_AXO)
}
				return false;
}
 
 
getXhr=GetXmlHttpRequest;
 
	/**
	* Méthode qui sera appelée sur le click du bouton
	*/			
 
function go(){
var xhr = getXhr();
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState == 4 && xhr.status == 200){
					leselect = xhr.responseText;
 
					window.document.getElementById('bloc').innerHTML = leselect;
			   }
			  }
			  			  xhr.open("POST","./AJAX_ext_presse.php",true);
 
			  xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			  			  // ici, l'id de l'artiste selectionné
			  id_art = window.document.getElementById('id_art');
			  Id_art = id_art.value;
 
			  xhr.send("id_art="+Id_art);
			}	
 
 
 
		presse = window.document.getElementById('presse');		
		presse.onclick = function() { go(); };
 
 
 
</script>
AJAX.ext_press.php :

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
 
<?php
 
if(isset($_POST["id_art"])){
if (mysql_connect("localhost","login","mdp") ) {
if (mysql_select_db("mabase") ) {
                                
$requete = "SELECT ex.description FROM extrait_presse AS ex, artiste AS a, art_extrait AS aex WHERE a.id_art=aex.id_art AND aex.id_extrait = ex.id_extrait AND aex.id_art =".$_POST["id_art"]." LIMIT 1";
//echo $requete;
if ($res = mysql_query($requete) ) {
                                
                                        $nb= mysql_num_rows($res);
                                        
if($nb > 0){
                                                
                                                echo '<h2 style="color: #535947;
        font-size:14px;">Extrait de presse</h2><br />';
                                                
                                                while($row = mysql_fetch_array($res)){
                                                        $description = utf8_encode($row['description']);
                                                        echo $description;
                                                }
                                                                        
}else{
                                                echo "<div style='font-family:Verdana, Arial, Helvetica, sans-serif;font-size:10px;color:#C60D0A;font-weight:bold;'>Aucun extrait de presse pour cet artiste</div>";
}               
                                        
} else {
                                        echo "Erreur de requ&ecirc;te";
}
                                
                                
                                
                        
                                
} else {
        echo "Erreur sélection de base de données";
}
} else {
        echo "Erreur de connexion mysql";
} 
 
} else {
        echo "Type d'artiste non défini";
}
 
 
 
?>