Ciao, sono nuovo del forum e spero che qualcuno possa risolvere il mio problema con ajax.
Ho una pagina con un classico form di registrazione dove nel campo utente ho messo un controllo ajax per verificare in tempo reale se l'username immesso è già presente nel database. Il problema è che con explorer funziona solo una volta, se torno nella textbox della username e riscrivo un username già presente non mi da nessun avviso, invece con firefox funziona tutto alla perfezione.
questo è il codice del controllo:
var url = "elencouser.php?nome=";
var http = creaXMLHttpRequest();
function controllanome()
{
var nomeuser = document.getElementById("utente").value;
http.onreadystatechange=handleHttpResponse;
http.open("GET", url + escape(nomeuser), true);
http.send(null);
}
function creaXMLHttpRequest()
{
var xmlhttp = null;
browserUtente = navigator.userAgent.toUpperCase();
if (typeof(XMLHttpRequest)==="function" || typeof(XMLHttpRequest)==="object")
{
xmlhttp = new XMLHttpRequest();
}
else if (window.ActiveXObject && browserUtente.indexOf("MSIE4")<0)
{
if (browserUtente.indexOf("MSIE5")<0)
{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
else
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlhttp;
}
function handleHttpResponse()
{
if (http.readyState==4)
{
if (http.status==200)
{
var results=http.responseText;
var campo=document.getElementById("utente");
if(results==1)
{
alert("nome utente esistente");
}
}
}
}
La funzione controllanome viene richiamata con un evento onBlur() immesso naturalmente nella textbox utente. Non ho postato la pagina elencouser.php che effettua la lettura del database in quanto almeno su quella sono sicuro che non ci sono errori.

Rispondi quotando