Bonjour à tous !
Voici quelques jours que je suis bloqué sur un problème concernant l'événement onkeyup. Tout se passe bien sous FireFox mais sous Internet Explorer, rien ne se passe... Voici mon code :
<html>
<head>
<title>Tutoriel Ajax (XHTML + JavaScript + XML)</title>
<script type='text/JavaScript'>
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 { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr
}
function go(x)
{
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;
document.getElementById('area').innerHTML = leselect;
alert("hihi");
}
}
xhr.open("POST","ajax.php",true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
search = document.getElementById(x).value;
xhr.send("search=" + search);
}
/*function onload()
{
tmp = document.getElementById('requete');
if (tmp.addEventListener)
{
tmp.addEventListener('onkeyup', go, false);
}
else if (tmp.attachEvent)
{
tmp.attachEvent('onkeyup',go);
}
}*/
</script>
<style type="text/css">
#area {
width: 200px;
margin-top: -17px;
}
#requete {
width: 200px;
}
</style>
</head>
<body>
<!--<input type='button' value='Dis quelque chose !'/>
<textarea rows="5" id="area"></textarea>-->
<form>
<input type="text" id="requete" onKeyup="go(this.id);"/>
<input type="submit" value="Rechercher"/>
</form>
<form>
<Select id="area" multiple size="5">
</Select>
</form>
</body>
</html>
Et voici le code de ajax.php qui fait un accès en base de données en php (ce n'est pas le problème je crois...) :
<?php
$host = "localhost";
$login = "root";
$password = "";
mysql_connect($host, $login, $password);
mysql_select_db("googlegsa");
$param = $_POST['search'];
$requete = 'SELECT requete FROM keywords WHERE requete LIKE "' . $param . '%" ORDER BY nbre_fois DESC'; // WHERE requete LIKE "g%" ORDER BY nbre_fois
$reponse = mysql_query($requete);
$num_enr = 0;
$data_array = array();
while ($donnees = mysql_fetch_assoc($reponse))
{
echo "<option value='".$donnees["requete"]."'>".$donnees["requete"]."</option>";
//echo $donnees["requete"];
//$data_array[$num_enr] = $donnees['requete'];
//$num_enr++;
}
?>
Pourtant quand j'utilise onkeyup dans un autre script celui-ci fonctionne correctement et sous IE et sous Firefox. J'ai également essayé la méthode GET mais même soucis, onkeyup ne fonctionne pas sous IE...
Une idée ??? Merci pour votre aide, j'en ai réellement besoin,
Le grand Jisay