Impossible de récupérer le XMLHttpRequest

nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 - 19 mai 2006 à 13:05
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 - 23 janv. 2007 à 01:31
Bonjour ! Je suis entrain de créer un chat en PHP / AJAX et j'aimerais savoir pourquoi mon code PHP ne s'execute jamais.

Le code AJAX :
var xmlHttp;
var xmlHttpMessages;
var refresh = setInterval("refreshMessages()", 1000);

function refreshMessages()
{
  var url = "get_messages.php";
  xmlHttp = GetXmlHttpObject(0, stateHandler);
  xmlHttp.open("GET", url, true);
  xmlHttp.send(null);
}

function stateHandler()
{  if(xmlHttp.readyState 4 || xmlHttp.readyState "complete")
  {
    document.getElementById("chat_panel").innerHTML = xmlHttp.responseText;
  }
}

function GetXmlHttpObject(id, handler)
{
  var objXmlHttp = null;
  var objXmlHttpMessages = null;

  if(navigator.userAgent.indexOf("Opera") >= 0)
  {
    alert("Le chat ne fonctionne pas sur le navigateur Opera.");
    return;
  }
  if(navigator.userAgent.indexOf("MSIE") >= 0)
  {
    var strName = "Msxml2.XMLHTTP";
    if(navigator.appVersion.indexOf("MSIE 5.5") >= 0)
    {
      strName = "Microsoft.XMLHTTP";
    }

    try
    {
      objXmlHttp = new ActiveXObject(strName);
      objXmlHttp.onreadystatechange = handler;
      objXmlHttpMessages = new ActiveXObject(strName);
      objXmlHttpMessages.onreadystatechange = handler;
      if(id == 0)
        return objXmlHttp;
      else
        return objXmlHttpMessages;
    }
    catch(e)
    {
      alert("Erreur : Les controles ActiveX doivent être activés.");
      return;
    }
  }

  if(navigator.userAgent.indexOf("Mozilla") >= 0)
  {
    objXmlHttp = new XMLHttpRequest();
    objXmlHttp.onerror = handler;
    objXmlHttp.onload = handler;
    objXmlHttpMessages = new XMLHttpRequest();
    objXmlHttpMessages.onerror = handler;
    objXmlHttpMessages.onload = handler;
    if(id == 0)
      return objXmlHttp;
    else
      return objXmlHttpMessages;
  }

  return;
}

function messageHandler()
{
}

function addMessageWithAJAX()
{
  var pseudo = document.getElementById("pseudo_txt").text;
  var message = document.getElementById("message_txt").text;
  var url = "add_message.php?pseudo=" + pseudo + "&message=" + message;
  xmlHttpMessages = GetXmlHttpObject(1, messageHandler);
  xmlHttpMessages.open("GET", url, true);
  xmlHttpMessages.send(null);
}

add_message.php :

<?php

$pseudo = $_GET["pseudo"];
$message = $_GET["message"];
$time = time();

mysql_connect("localhost", "xxxx", "xxxx");
mysql_query("INSERT INTO messages(AUTEUR, TIMESTAMP, MESSAGE) VALUES('$pseudo', '$time', '$message')");
mysql_close();

?>

get_messages.php :

<?php

echo "Bonjour !";

?>

Si quelqu'un trouve le problème dans le code, ça m'intéresse beaucoup.

1 réponse

rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
23 janv. 2007 à 01:31
Cela ne fonctionne pas car tu dois surement utiliser FireFox et tu affectes ta fonction onreadystatechange seulement lorsque le navigateur est IE, les propriétés onload , onerror etc ne permettent pas de tester l'état de la requete

-- The Rubik's Man --
0
Rejoignez-nous