J'expérimente sur ce code que j'ai obtenu du filet (j'essaye de faire une conversation simple mais je fais l'insertion de message manuellement dans la base de données mysql). Il actualise la page toutes les 3 secondes et affiche le nouveau message dans la page récupérée de la base de données. Cela fonctionne bien en chrome et firefox mais pas en IE. Ce que j'ai observé dans IE est qu'il affichera seulement le nouveau message chaque fois que j'efface le cache ou efface les cookies dans le navigateur. Quelqu'un peut-il me aider à trouver une solution pour cette s'il vous plaît ...Ajax simple/actualisation de page
S'il vous plaît voir le code:
<html>
<head>
<script type="text/javascript">
function showResult(str) {
document.getElementById("livesearch").innerHTML="";
if (str.length==0) {
document.getElementById("livesearch").innerHTML="";
document.getElementById("livesearch").style.border="0px";
return;
}
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else {
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
var msxmlhttp = new Array(
'Msxml2.XMLHTTP.5.0',
'Msxml2.XMLHTTP.4.0',
'Msxml2.XMLHTTP.3.0',
'Msxml2.XMLHTTP',
'Msxml2.xmlHTTP
'Microsoft.XMLHTTP');
for (var i = 0; i <= msxmlhttp.length; i++) {
try {
xmlhttp = new ActiveXObject(msxmlhttp[i]);
}
catch (e) {
xmlhttp = null;
}
}
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("livesearch").innerHTML=xmlhttp.responseText;
document.getElementById("livesearch").style.border="1px solid #A5ACB2";
setTimeout("showResult('a')", 3000);
}
}
xmlhttp.open("GET","http://localhost/review/login/5/try.php",true);
xmlhttp.send();
}
</script>
</head>
<body onload="">
<script>
setTimeout("showResult('a')", 3000);</script>
<form>
<div id="livesearch"></div>
</form>
</body>
</html>
c'est le code pour try.php
<?php
require_once('config.php');
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
if(!$link)
{
die('Failed to connect to server: ' . mysql_error());
}
$db = mysql_select_db(DB_DATABASE);
if(!$db)
{
die("Unable to select database");
}
//Create query
$qry="SELECT * FROM message where message like '%".$_GET['a']."%'";
$result=mysql_query($qry);
if(mysql_num_rows($result) > 0)
{
while($row = mysql_fetch_assoc($result))
{
echo $row['message']."<br>";
//echo "<br> ".$member['message'];
}
}
?>
S'il vous plaît aider ... merci ..
comment monsieur .......? – yonan2236
jQuery est une bibliothèque JavaScript très utile. Un appel AJAX GET est fait simplement comme ceci: $ .get (URL, function() { // Votre code pour gérer la réponse du serveur }); Peut-être que votre problème de compatibilité du navigateur peut être résolu en utilisant jQuery (OK, vous pouvez également le réparer vous-même, mais vraiment ... jQuery en vaut la peine). – PJP