Hola amigos, verán hace poco comence con la programacion en javascript, y hoy intente tambien incorporar ajax para consultar en la base de datos si existia el texto puesto en el formulario.
Todo el javascript está correcto, pero la parte en AJAX no funciona, más preciso de la linea 39 a las 55. Es donde estoy metiendo el Ajax (un código que me encontre en la web) pero estoy metiendolo en una function como si fuera js, lo cierto es que no se como funciona esto.
Me podrían ayudar.
Gracias.
Código Javascript
:
Ver original<script language="javascript" type="text/javascript">
function xmlhttp(){
var xmlhttp;
try{xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");}
catch(e){
try{xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}
catch(e){
try{xmlhttp = new XMLHttpRequest();}
catch(e){
xmlhttp = false;
}
}
}
if (!xmlhttp)
return null;
else
return xmlhttp;
}
function validar(){
var username = document.getElementById('username').value,
ajax = xmlhttp();
//Actualizar
function updateTips(t){
document.getElementById('validateTips').innerHTML = t;
}
//Validar campos de formulario
function checkEmpty(a,b){
if( a.length <= 0 ) { updateTips("Debes escribir un "+b+"."); return false; } else { return true; }
}
//validar caracteres alfanumericos
function checkRegexp(a,regexp,b){
if( !(regexp.test(a)) ){ updateTips("Solo se permiten caracteres alfanuméricos"); return false; } else { return true; }
}
//Buscar en la base de datos
function findUser(){
ajax.onreadystatechange=function(a,b){
if(ajax.readyState==1){
updateTips(b);
}
if(ajax.readyState==4){
updateTips(ajax.responseText);
}
if(query.length<=0){
updateTips(ajax.responseText);
}
}
ajax.open("GET","checkUser.php?q="+encodeURIComponent(a),true);
ajax.send(null);
return false;
}
var bValid = true;
bValid = bValid && checkEmpty(username,"Nombre de usuario");
bValid = bValid && checkRegexp(username,/^[\w\,.!¿?'áéíóúÁÉÍÓÚñÑ\-@\s]+$/i,"Nombre de usuario");
bValid = bValid && findUser(username,"<img src='images/loading.gif' alg='Loading...'>");
if(bValid) { updateTips("Todo correcto"); }
}
</script>