Pb de Compatibilité Affichage Dynamique FF VS. ie
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:
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élé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:
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ê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";
}
?> |