tiene un input text... que por rara ocasion le hice que funciones dos eventos BLUR Y ONBLUR..
PERO FUNCIONA:.probando la web desde mi wamp, pero en 000webhost la parte del ajax no lo detecta, no ejecuta nose.. no es un problema de dom o no se que... la funcion ajax. es donde marque mas abajo que es la mas importante
EL eVENTO:
BLUR: toma el valor. por medio de ajax. verifica si esta disponible. el usuario en la base de datos. y devuelve un texto , que en medio del ajax,
si el texto devuelto es "usuario disponible" este texto aparece en un div amarillo
si el texto devuelto es "usuario no disponible" este texto aparece en un div rojo y el el texto del input donde se ingreso el usuario se vacia.
ONBLUR: verifica si hay espacios.en blanco. no que este vacio. si no espacios en blanco. de ser asi. coloca el input vacio...
bueno el tema es que en mi web.desde wamp. (servidor local) funciona.
pero cuando lo subi a 000webhost no funciona ...
verifiquen aca...
si quieren...
ropadeliv.net84.net
el codigo es masomenos asi
del formulario...
Código PHP:
<form name="frm" id="frm" method="post" onsubmit="return validar(this)">
<fieldset id="form">
<legend ><p class="let_rub2">Registro de usuario</p></legend>
<ol>
<li><label>Usuario: </label><input type="text" onBlur="return valida_form(this)" id="usu" name="usu" size="25" /></li><span id="resultados" name="resultados" ></span>
<p align="center"><input type="reset" name="limp" value="Limpiar" />
<input name="env" type="submit" value="Registrarse" /></p>
</fieldset>
</form>
del ajax...
esto hace on ONBLUR
Código PHP:
function LimpiaEspacios(Obj)
{
var texto = Obj.value;
//limpiamos de espacios en blanco el texto
var texto_limpio = texto.replace(/^s+|s+$/g,"");
if (texto_limpio=="")
{
Obj.value = "";
Obj.focus();
return true;
}
else
{
return false;
}
}
function valida_form(elemento)
{
if (LimpiaEspacios(elemento))
{
document.getElementById("parche").style.display="block";
document.getElementById("parche").style.visibility="visible";
return false;
}
else
{
document.getElementById("parche").style.display="hidden";
document.getElementById("parche").style.visibility="hidden";
}
return true;
}
***************************************esto hace por BLUR
esta parte del ajax es la mas importante... .
Código PHP:
function procesarEventos()
{
var resultados = document.getElementById("resultados");
if(conexion1.readyState == 4)
{
resultados.innerHTML = conexion1.responseText;
if (conexion1.responseText=='Usuario no disponible')
{
resultados.style.backgroundColor='#f00';
var feo = document.getElementById("usu");
feo.value="";
}
else
resultados.style.backgroundColor='#ff0';
}
else
{
resultados.innerHTML = 'Procesando...';
}
}
por las dudas les dejo el codigo completol.
Código PHP:
addEvent(window1,'load',inicializarEventos,false);
function inicializarEventos()
{
var ref=document.getElementById('usu');
addEvent(ref,'blur',enviarNombre,false);
}
var conexion1;
function enviarNombre()
{
conexion1=crearXMLHttpRequest();
conexion1.onreadystatechange = procesarEventos;
conexion1.open('POST','verificarnombre.php', true);
conexion1.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
conexion1.send(retornarDatos());
}
function retornarDatos()
{
var cad='';
var nom=document.getElementById('usu').value;
cad='usu='+encodeURIComponent(nom);
return cad;
}
function procesarEventos()
{
var resultados = document.getElementById("resultados");
if(conexion1.readyState == 4)
{
resultados.innerHTML = conexion1.responseText;
if (conexion1.responseText=='Nombre no disponible')
{
resultados.style.backgroundColor='#f00';
document.getElementById("usu").value="";
}
else
resultados.style.backgroundColor='#ff0';
}
else
{
resultados.innerHTML = 'Procesando...';
}
}
//***************************************
//Funciones comunes a todos los problemas
//***************************************
function addEvent(elemento,nomevento,funcion,captura)
{
if (elemento.attachEvent)
{
elemento.attachEvent('on'+nomevento,funcion);
return true;
}
else
if (elemento.addEventListener)
{
elemento.addEventListener(nomevento,funcion,captura);
return true;
}
else
return false;
}
function crearXMLHttpRequest()
{
var xmlHttp=null;
if (window.ActiveXObject)
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
else
if (window.XMLHttpRequest)
xmlHttp = new XMLHttpRequest();
return xmlHttp;
}
var conexion1;
function enviarNombre()
{
conexion1=crearXMLHttpRequest();
conexion1.onreadystatechange = procesarEventos;
conexion1.open('POST','verificarnombre.php', true);
conexion1.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
conexion1.send(retornarDatos());
}
function retornarDatos()
{
var cad='';
var nom=document.getElementById('usu').value;
cad='usu='+encodeURIComponent(nom);
return cad;
}
function procesarEventos()
{
var resultados = document.getElementById("resultados");
if(conexion1.readyState == 4)
{
resultados.innerHTML = conexion1.responseText;
if (conexion1.responseText=='Usuario no disponible')
{
resultados.style.backgroundColor='#f00';
var feo = document.getElementById("usu");
feo.value="";
}
else
resultados.style.backgroundColor='#ff0';
}
else
{
resultados.innerHTML = 'Procesando...';
}
}
//***************************************
//Funciones comunes a todos los problemas
//***************************************
function addEvent(elemento,nomevento,funcion,captura)
{
if (elemento.attachEvent)
{
elemento.attachEvent('on'+nomevento,funcion);
return true;
}
else
if (elemento.addEventListener)
{
elemento.addEventListener(nomevento,funcion,captura);
return true;
}
else
return false;
}
function crearXMLHttpRequest()
{
var xmlHttp=null;
if (window.ActiveXObject)
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
else
if (window.XMLHttpRequest)
xmlHttp = new XMLHttpRequest();
return xmlHttp;
}
el php que hace la consulta mysql y devuelve un valor...
Código PHP:
<?php
header('Content-Type: text/html; charset=ISO-8859-1');
$conexion=mysql_connect("localhost","root","pass") or
die("Problemas en la conexion");
mysql_select_db("bbdd",$conexion) or
die("Problemas en la selección de la base de datos");
$registro=mysql_query("select * from usuarios where usuario='$_REQUEST[usu]'",$conexion) or
die("Error:".mysql_error());
if (mysql_fetch_array($registro))
echo 'Usuario no disponible';
else
echo 'Usuario disponible';
mysql_close($conexion);
?>
la conexion en la web, 000webhost, muestra si es usuario disponible o no ,,, pero no me aparece de color naranaja ni rojo ni tampoco me vacia el input , en el caso de ser usuario no disponible. como sucede cuando pruebo mi web desde mi wamp.. servidor local...
bueno gracias ...