Foros del Web » Programando para Internet » Javascript »

validar existencia de usuario sin salir de la pagina

Estas en el tema de validar existencia de usuario sin salir de la pagina en el foro de Javascript en Foros del Web. Hola a todos, sigo teniendo dudas ahora con javascript, lo que quiero que es validar un usuario, que este nombre no exista en la base ...
  #1 (permalink)  
Antiguo 04/07/2013, 11:57
 
Fecha de Ingreso: mayo-2013
Mensajes: 34
Antigüedad: 10 años, 11 meses
Puntos: 0
validar existencia de usuario sin salir de la pagina

Hola a todos, sigo teniendo dudas ahora con javascript, lo que quiero que es validar un usuario, que este nombre no exista en la base de datos, vamso que este libre en el momento en el que el usuario inserte el nombre, sin salir de esa página.
he pensado hacerlo con un onblur para cuando salga de la pestaña lo verifique, mi codigo es el siguiente pero no funciona:

Código HTML:
Ver original
  1. <td colspan="3"><input type="text" name="user" id="user" onblur="validaruser(this)" /> <span id=&#8221;comprobarusuario&#8221;></span><br/>
  2.  
  3.  </td>

Código PHP:
Ver original
  1. <?php
  2. sleep(1);
  3. include('configuracion.php');
  4. conecta();
  5.     $user = $_GET['user'];
  6. $sql="select user from usuarios where user LIKE '$user'";
  7. $result = mysqli_query($mysqli, $sql);
  8.  
  9. $num = mysql_num_rows($result);
  10.  
  11. if ($num>0){
  12. echo "existe";
  13. }
  14. else{
  15. echo "no existe";}
  16. }
  17. ?>

y la función que creo que es lo qeu falla:

Código Javascript:
Ver original
  1. function validarusuario(user){
  2.  
  3. var url = 'comprobar_user.php';
  4.  
  5. var parametros='user='+user.value;
  6.  
  7. var ajax = new Ajax.Updater('comprobarusuario',url,{method: 'get', parameters: parametros});

llevo dias pero no consigo que funcione y ya he perdido la paciencia, he buscado en 1000 sitios y nada, no funciona ni los ejemplos qe pruebo..

Última edición por kristian159; 04/07/2013 a las 12:12
  #2 (permalink)  
Antiguo 04/07/2013, 12:22
Avatar de Reedyseth  
Fecha de Ingreso: enero-2009
Ubicación: Chihuahua, México
Mensajes: 419
Antigüedad: 15 años, 2 meses
Puntos: 36
Respuesta: validar existencia de usuario sin salir de la pagina

Primero que nada, debes de pegar bien el código, solo estas pegando fragmentos de código.

Segundo no solo es Javascript, sino que estas usando Prototype, te recomiendo que leas bien la documentación del API para que entiendas como funciona.

Tercero Cuando recibas la información del servidor te va a dar 'existe' o 'no existe', esto lo puedes poner en una condición para validarlo.

Cuarto En tu query no estas buscando varias coincidencias del usuario por lo tanto no debes de usar un LIKE, sino una igualdad, user = $user. Tu query en vez de preguntar por el usuario debe de preguntar si existe un registro de ese usuario con un count(), si el count es mayor que 0 entonces si existe.
__________________
Reedyseth
Te ayudo? No olvides dar un +
blog:http://behstant.com/blog
En el blog:Tutoriales de Desarrollo Web PHP, Javascript, BD y más.
  #3 (permalink)  
Antiguo 04/07/2013, 12:29
 
Fecha de Ingreso: mayo-2013
Mensajes: 34
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: validar existencia de usuario sin salir de la pagina

¿se podría hacer sin prototype? he puesto el count y el =, sigue sin ir, supongo que es por el prototype

teoricamente funciona con el echo de existe, que se imprime en la etiqueta span al lado del input ¿no? pero ahí no aparece nada, creo que es precisamente lo que falla

Código PHP:
Ver original
  1. $sql="select count(user) from usuarios where user = '$user'";
  2. $result = mysqli_query($mysqli, $sql);
  3.  
  4. if ($result>0){
  5. echo "existe";
  6. }
  7. else{
  8. echo "no existe";}
  9. }
  10. ?>

Última edición por kristian159; 04/07/2013 a las 12:35
  #4 (permalink)  
Antiguo 04/07/2013, 12:46
Avatar de Reedyseth  
Fecha de Ingreso: enero-2009
Ubicación: Chihuahua, México
Mensajes: 419
Antigüedad: 15 años, 2 meses
Puntos: 36
Respuesta: validar existencia de usuario sin salir de la pagina

Que bueno que comuniscas si se puede sin prototype, yo soy mas un jQuery guy, te voy a mostrar un ejemplo con jQuery, nada mas deja lo preparo y te lo muestro, utilizas MySQL antiguo o MySQLi para la conexion.

Para no confundirte mucho voy a utilizar MySQLi, ya que para trabajar con BD yo uso PDO.
__________________
Reedyseth
Te ayudo? No olvides dar un +
blog:http://behstant.com/blog
En el blog:Tutoriales de Desarrollo Web PHP, Javascript, BD y más.
  #5 (permalink)  
Antiguo 04/07/2013, 12:53
 
Fecha de Ingreso: mayo-2013
Mensajes: 34
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: validar existencia de usuario sin salir de la pagina

utilizo MySQLi aunque no domingo mucho esas conexiones de hecho me esta fallando la consulta porque no se gauarda correctamente, me sale esto: "bject of class mysqli_result could not be converted to string i"

muchas gracias por todo!!
  #6 (permalink)  
Antiguo 04/07/2013, 14:58
Avatar de Reedyseth  
Fecha de Ingreso: enero-2009
Ubicación: Chihuahua, México
Mensajes: 419
Antigüedad: 15 años, 2 meses
Puntos: 36
Respuesta: validar existencia de usuario sin salir de la pagina

Mira con este código que te voy a poner obtienes el resultado que deseas, sin embargo la información, nombre de la tabla y algunas variables pueden que cambien.

Código HTML:
Ver original
  1.     <head>
  2.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  3.         <meta name="author" content="Reedyseth" />
  4.         <meta name="email" content="[email protected]" />
  5.         <title>Validacion de Usuario.</title>
  6.         <link rel="stylesheet" type="text/css" href="http://code.jquery.com/ui/1.9.2/themes/redmond/jquery-ui.css">
  7.         <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
  8.         <script type="text/javascript" src="http://code.jquery.com/ui/1.8.24/jquery-ui.min.js"></script>
  9.         <script type="text/javascript">
  10.             jQuery(function($) {
  11.                 //
  12.             });
  13.             function validarusuario(user){
  14.                 $('span#comprobarusuario').text("");
  15.                 var usuario = user.value;
  16.                 $.ajax({
  17.                     url: 'includes/php/validateUser.php',
  18.                     data: {user: usuario},
  19.                     type: "get",
  20.                     success: function(response) {
  21.                         if(response == 'true') {
  22.                             $('span#comprobarusuario').text("El usuario ya existe.");
  23.                         } else if(response == 'false') {
  24.                             //$('span#comprobarusuario').text("El usuario ya existe.");
  25.                         }
  26.  
  27.                     },
  28.                     error: function() {
  29.                         alert("Sucedio un error al realizar la conexión.")
  30.                     }
  31.                 });
  32.             }
  33.         </script>
  34.         <style type="text/css">
  35.         </style>
  36.     </head>
  37.     <body>
  38.         <input type="text" name="user" id="user" onblur="validarusuario(this);" /> <span id="comprobarusuario"></span><br/>
  39.     </body>
  40. </html>

Código PHP:
Ver original
  1. <?php
  2. $existeUsuario = null;
  3. // realizamos la conexion
  4. $conn = new mysqli("localhost","usuario","1234",'sitio');
  5. // verificamos la conexión
  6.     echo "The connection failed";
  7.     exit();
  8. }
  9. // preparamos la consulta
  10. $sql = 'SELECT COUNT(*) num FROM users WHERE user = ?';
  11. // Si el query esta preparado entonces continuar
  12. if ($stmt = $conn->prepare($sql)) {
  13.     // ligar los parametros
  14.     $stmt->bind_param("s",$_GET['user']);
  15.     // ejecutar la consulta
  16.     $stmt->execute();
  17.     // obtenemos el resultado de la consulta
  18.     $result = $stmt->get_result();
  19.     // ahora asignamos el resultado
  20.     $row = $result->fetch_assoc();
  21.     // guardamos el valor en $totalRegistros
  22.     $totalRegistros = $row['num'];
  23.     // verificamos si ya existe el usuario
  24.     if ($totalRegistros > 0) {
  25.         $existeUsuario = "true" ;
  26.     }
  27.     else if ($totalRegistros == 0) {
  28.         $existeUsuario = "false"    ;
  29.     }
  30. }
  31.  
  32. echo $existeUsuario;
  33. ?>

Recuerda que tu input tiene que perder el foco para que funcione.

Saludos
__________________
Reedyseth
Te ayudo? No olvides dar un +
blog:http://behstant.com/blog
En el blog:Tutoriales de Desarrollo Web PHP, Javascript, BD y más.

Etiquetas: ajax, existencia, funcion, input, php, salir, select, usuario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:09.