Hola que tal...
Soy igualmente novato en esto, etoy luchando igual con la validacion del un campo de usuario, lo he logrado hacer utilizando AJAX y en el codigo que pones observo los siguientes detalle:
Código:
ajax.open("GET", "includes/register_user.php?campo="+campo+"&valor="+valor,true);
Utilizas el metodo GET para el paso del parametro y tratas de enviar toda la informacion en la misma cadena, yo utilizo el metodo POST y los parametros lo envio en una cadena aparte y generada:
Código:
http_request.open("POST", "validausuario.php", true);
http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
http_request.send("qry_usuario=" + formulario.tfUsuario.value);
Una vez enviado esta informacion primero validando la exitencia y luego asignandola a una variable para usarla en la consulta, puedes obtener el parametro desde validausuario.php (en mi caso) con:
Código:
if(isset($_POST['qry_usuario'])) //consultas la exitencia de la variable
{
$qry_usuario = $_POST['qry_usuario']; //se asigna a una variable para poder utilizarla posteriormente en la consulta...
....
Este es el codigo que me ha funcionado a mi:
Código HTML:
var http_request;
if (window.XMLHttpRequest) // Mozilla, Safari, ...
{
http_request = new XMLHttpRequest();
}
else if (window.ActiveXObject) // Internet Explorer
{
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
http_request.open("POST", "validausuario.php", true);
http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
http_request.send("qry_usuario=" + formulario.tfUsuario.value);
http_request.onreadystatechange = function()
{
if(http_request.readyState == 4)
{
if(http_request.responseText != "OK")
{
alert(http_request.responseText); return false;
}
}
}
Y el codigo de validausuario.php es:
Código PHP:
if(isset($_POST['qry_usuario']))
{
$qry_usuario = $_POST['qry_usuario'];
mysql_select_db($database_idse, $idse);
$query_usuario = "SELECT * FROM usuarios WHERE usuarios.usuario = '$qry_usuario'";
$usuario = mysql_query($query_usuario, $idse) or die(mysql_error());
$row_usuario = mysql_fetch_assoc($usuario);
$totalRows_usuario = mysql_num_rows($usuario);
if($totalRows_usuario > 0)
{
echo "El nombre de Usuario ya esta Registrado, por favor seleccione otro";
mysql_free_result($usuario);
}
else
{
echo "OK";
mysql_free_result($usuario);
}
}
Espero te sirva esto... a mi realiza la validacion en forma adecuada, PEROOOO el detalle en que yo uso el evento OnSubmit del Form para habilitar la validacion... cuando ingreso el valor de usuario y esta repetido, me dice que el usuario ya existe, no corta el envio de la informacion e ingresa al usuario nuevamente...
La cabezera de form la tengo de la siguiente forma: Código HTML:
<form id="form1" name="form1" method="POST" onsubmit= "return validaformulario(this);" action="<?php echo $editFormAction; ?>" >
ojala puedan decirme a que se debe a que no corta el evento, aun cuando valida adecuandamente.....