Bonjour à tous

(le code n'est pas interessant mais c'est pour la demo)

J'ai un comportement étrange avec une procédure ajax basique. Une page principale avec un lien et 2 div, un fichier script, un fichier de données.
le but: afficher lors du clic du div 1 , le contenu de la page de données dans le div 2 ......Soit je ne vois plus rien (c'est possible), soit je ne comprends plus rien (c'est probable)

le fichier index.php
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
<SCRIPT type="text/javascript" language="JavaScript" src="script.js"></SCRIPT>
<?php
echo "<div id='DIVUN'>";
echo "<a href='' Onclick='affiche()'>Click</a>";
echo "</div>";
 
echo "<div id='DIVDEUX'>";
echo "</div>";
?>

le fichier de données
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<?php
echo "OK";
?>

le fichier script javascript
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
function getXhr() {
  var xhr = null;
  if (window.XMLHttpRequest) // Firefox et autres
  xhr = new XMLHttpRequest();
  else if (window.ActiveXObject) { // Internet Explorer
    try {
      xhr = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
      xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
  } else {
    alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
    xhr = false;
  }
  return xhr;
}
 
function affiche() {
  var xhr = getXhr();
  xhr.onreadystatechange = function () {
    alert(xhr.readyState);
    if (xhr.readyState == 4 && xhr.status == 200) {
      leselect = xhr.responseText;
      document.getElementById('DIVDEUX').innerHTML = leselect;
      xhr.abort();
    }
  }
  xhr.open("GET", "madata.php", true);
  xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  xhr.send(null);
  alert('ok');
}
Si je ne mets pas le alert('quelquechose'); le xhr.readyState s'arrête a 2 puis plus rien, sinon il va au bout, mais la donnée "Ok", s'affiche 1 seconde puis disparait comme si il y avait un reload....

Je suis dubitatif

Merci à vous