Hola a todos, aunque despues de leer el post quizas el titulo sea un poco engañoso no encontre otra forma de explicarlo.
Bueno veran estoy haciendo un sitio con AJAX usando jQuery, PHP y MySQL y pues lo de siempre, usuarios, altas, consultas, etc. Por ahora tengo una duda que es mas relacionado con PHP y AJAX.
Pues ando en la parte de registro de un usuario nuevo, tengo mi formulario todo bien. Uso la funcion jquery $.post(); para verificar si el "nombre de usuario" ya existe. Lo hago de esta forma.
Código Javascript
:
Ver original$('#nick').blur(function(){
$.post("clases/verificar_usuario.php", { nick: nick }, function(data){
$("#validacion").html(data);
if($("#validacion p").hasClass('error')){
$('#nick').removeClass();
$('#nick').addClass('border_rojo');
}else{
$('#nick').removeClass();
$("#validacion p").html('');
$('#nick').addClass('border_verde');
}
});
});
Como pueden observar al retirar el foco o el puntero del mouse fuera del input "#nick", a traves de la funcion $().blur hago un post a "verificar_usuario.php" pasandole el valor del input y realiso la siguiente consulta en verificar_usuario.php
Código PHP:
Ver original<?php
include("config.inc.php");
include("mysql.class.php");
/// Creamos el nuevo objeto de base de datos
/// Abrimos la conexión
$db->open();
/// Ejecutamos la consulta
$consulta = $db->consulta("SELECT usr_nick FROM usuarios WHERE usr_nick = '$_POST[nick]'");
/// Aqui asigno el valor de la consulta a una variable
if ($row = $db->fetch_array($consulta)) {
$nick1 = $row["usr_nick"];
}
else{
/// si no existe valor el NOMBRE DE USUARIO esta disponible
$nick1 = "disponible";
}
if ($nick1 == "disponible") {
echo '<p>El nombre de usuario esta disponible</p>';
}
else{
/// Si el nombre de usuario no esta disponible imprimo este paragrafo indicando lo anterior.
echo '<p class="error">El nombre de usuario ya esta siendo usado</p>';
}
?>
Entonces la manera de verificar si existe el nombre de usuario o no es atraves de lo que retorno en la consulta PHP. Si se dan cuenta en el JavaScript verifico si en un div que llamo "#validacion" en su nodo hijo que es el paragrafo, existe la clase "error" (
if($("#validacion p").hasClass('error'))) si es asi imprimo un mensaje diciendo que el nombre de usuario ya existe, si no le digo que el nombre de usuario esta disponible.
Muestro de nuevo el codigo resaltando lo anterior
Código Javascript
:
Ver original$('#nick').blur(function(){
$.post("clases/verificar_usuario.php", { nick: nick }, function(data){
// Aqui paso el HTML que arrojo en mi PHP y lo agrego a el div #validacion
$("#validacion").html(data);
[I][B]if($("#validacion p").hasClass('error')){
$('#nick').removeClass();
$('#nick').addClass('border_rojo');
// si tiene la clase error el usuario ya existe y hago css para indicar lo anterior
}else{
$('#nick').removeClass();
$("#validacion p").html('');
$('#nick').addClass('border_verde');
// si no existe igual aplico css para indicar que ese campo ya esta validado
}[/B][/I]
});
});
Bueno pues despues de este choro enorme pense que habria una mejor forma de hacer esto y a eso es a lo que voy.
Mi pregunta es ¿No hay una forma de hacer una especie de funcion en PHP que me arroje TRUE o FALSE?. Es que si sigo haciendolo asi afuerzas tendria que escribir algo en mi PHP en funcion del resultado y luego validarlo como ya lo mostre, no hay una forma de verificar con AJAX usando jQuery que
mi consulta trajo alguna valor o si no lo trajo y en funcion de eso hacer mi validacion??? alguna especie de
Código Javascript
:
Ver original$('#nick').blur(function(){
$.post("clases/verificar_usuario.php", { nick: nick }, function(data){
if(data){
ES TRUE Y TRAE VALOR ENTONCES YA EXISTE EL NOMBRE DE USUARIO
}else{
ES FALSE NO TRAE VALOR ENTONCES NO EXISTE EL NOMBRE DE USUARIO
}
});
});
y que deberia poner en el PHP??? COMO PODRIA HACERLO????? por que igual cuando haga la validacion de inicio de sesion es la misma historia..
Ojala puedan ayudarme, se los agradezco de antemano. Saludos!