Foros del Web » Programando para Internet » Javascript » Frameworks JS »

como integrar funcion para validar y funcion para validar nombre de usuario

Estas en el tema de como integrar funcion para validar y funcion para validar nombre de usuario en el foro de Frameworks JS en Foros del Web. hola amigos espero me puedan ayudar tengo un formulario en el cual valido algunos campos,pero tengo el siguiente problema tengo una función con la cual ...
  #1 (permalink)  
Antiguo 29/12/2012, 12:23
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 3 meses
Puntos: 6
como integrar funcion para validar y funcion para validar nombre de usuario

hola amigos espero me puedan ayudar

tengo un formulario en el cual valido algunos campos,pero tengo el siguiente problema tengo una función con la cual consulto la base de datos y saco un letro diciendo si el nombre de usuario esta disponible o ya esta ocupado pero necesito es que si el nombre de usuario esta ocupado no lo deje continuar osea no deje enviar el form

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.     $( "#cumple" ).datepicker({ dateFormat: 'yy-mm-dd' });
  3.    
  4.     $('#add').click(function (){
  5.     var val = ($('#form-add').valid());
  6.     if (val == true) {
  7.     var dataString = $('#form-add').serialize();
  8.     $.ajax({
  9.            type: "POST",
  10.            url: "views/insertar_usuario-login.php",
  11.             data: dataString,
  12.            }).done(function(data) {        
  13.            $("#consulta").html(data);
  14.             });
  15.         }
  16.     else {
  17.    
  18.     }  
  19.   return false;
  20.    
  21.    
  22.     });
  23.    
  24.     $('#toggleBtnChbox').click(function(){
  25.        
  26.     if($(this).is(':checked')){
  27.         $('form input[type="password"]').prop('type','text');
  28.     }
  29.     else {
  30.         $('.contrasena').prop('type','password');
  31.     }          
  32.    
  33.     });
  34.    
  35.    
  36.     $("#usuario").blur(function()
  37.     {
  38.        
  39.         $("#msgbox").removeClass().addClass('messagebox').text('Comprobando...').fadeIn("slow");
  40.        
  41.         $.post("views/user_availability.php",{ user_name:$(this).val() } ,function(data)
  42.         {
  43.           if(data=='no')
  44.           {
  45.             $("#msgbox").fadeTo(200,0.1,function()
  46.             {
  47.              
  48.               $(this).html('Este nombre de usuario ya existe en el sistema').addClass('messageboxerror').fadeTo(900,1);
  49.             });    
  50.           }
  51.           else
  52.           {
  53.             $("#msgbox").fadeTo(200,0.1,function()
  54.             {
  55.              
  56.               $(this).html('nombre de usuario disponible para registrar').addClass('messageboxok').fadeTo(900,1);  
  57.             });
  58.           }
  59.     });
  60.     });
  61.     });
  #2 (permalink)  
Antiguo 29/12/2012, 12:59
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: como integrar funcion para validar y funcion para validar nombre de usuari

Tu planteo es un poco confuso, de hecho al usar ajax el form siempre se envía, fijate que hacés
$.post("views/user_availability.php"....
lo que resta es definir tus acciones si la respuesta es "no", tanto en la script como en el php, obviamente en tu php es bastante fácil de adivinar

Código PHP:
Ver original
  1. <?php
  2. //si existe
  3. echo "no";
  4. exit();
  5.  
  6. ?>

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 29/12/2012, 13:07
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 3 meses
Puntos: 6
Respuesta: como integrar funcion para validar y funcion para validar nombre de usuari

emprear gracias por responder , todos los campos los valido sin inconvenientes pero necesito es que si el usuario existe no deje enviar el formulario , porque como lo tengo si lo deja enviar.

una idea que tengo es la siguiente, si el nombre de usuario esta ocupado dejo el input vacio y asi se valida el campo ya que no puede estar vacio

Código Javascript:
Ver original
  1. if(data=='no')
  2.           {
  3.  
  4.  $('#usuario').val(" ");

Última edición por Montes28; 29/12/2012 a las 13:39
  #4 (permalink)  
Antiguo 29/12/2012, 13:45
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: como integrar funcion para validar y funcion para validar nombre de usuari

Cita:
Iniciado por Montes28 Ver Mensaje
emprear gracias por responder , todos los campos los valido sin inconvenientes pero necesito es que si el usuario existe no deje enviar el formulario , porque como lo tengo si lo deja enviar.

una idea que tengo es la siguiente, si el nombre de usuario esta ocupado dejo el input vacio y asi se valida el campo ya que no puede estar vacio

Código Javascript:
Ver original
  1. if(data=='no')
  2.           {
  3.  
  4.  $('#usuario').val(" ");
Si, buena idea, valida que el campo esté ocupado y solo ocupalo si el usuario está disponible, quizás un evento onkeyup fuese más recomendable
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 29/12/2012, 13:55
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 3 meses
Puntos: 6
Respuesta: como integrar funcion para validar y funcion para validar nombre de usuari

emprear gracias por responder

hice lo que me indicas pero no me funciono, que estoy haciendo mal?

Código Javascript:
Ver original
  1. $("#usuario").onkeyup(function()
  2.     {
  3.        
  4.         $("#msgbox").removeClass().addClass('messagebox').text('Comprobando...').fadeIn("slow");
  5.        
  6.         $.post("views/user_availability.php",{ user_name:$(this).val() } ,function(data)
  7.         {
  8.           if(data=='no')
  9.           {
  10.             $("#msgbox").fadeTo(200,0.1,function()
  11.             {
  12.              
  13.               $(this).html('Este nombre de usuario ya existe en el sistema').addClass('messageboxerror').fadeTo(900,1);
  14.             });    
  15.           }
  16.           else
  17.           {
  18.             $("#msgbox").fadeTo(200,0.1,function()
  19.             {
  20.              
  21.               $(this).html('nombre de usuario disponible para registrar').addClass('messageboxok').fadeTo(900,1);  
  22.             });
  23.           }
  24.     });
  25.     });
  #6 (permalink)  
Antiguo 29/12/2012, 14:27
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: como integrar funcion para validar y funcion para validar nombre de usuari

@Montes28
pasá el html completo, y si es un php, el html generado por este
los php no hacen falta, invento algo para verificarlos
SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 29/12/2012, 14:39
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 3 meses
Puntos: 6
Respuesta: como integrar funcion para validar y funcion para validar nombre de usuari

Código Javascript:
Ver original
  1. $("#usuario").blur(function()
  2.     {
  3.         var usuario = $(this).val();
  4.         $("#msgbox").removeClass().addClass('messagebox').text('Comprobando...').fadeIn("slow");
  5.         $.post("views/user_availability.php",{ user_name:$(this).val() } ,function(data)
  6.         {
  7.          if(data=='no')
  8.           {
  9.             $('#usuario').val("");
  10.             $("#msgbox").fadeTo(200,0.1,function()
  11.             {
  12.              $(this).html(usuario+' '+'Este nombre de usuario ya existe en el sistema').addClass('messageboxerror').fadeTo(900,1);
  13.             });    
  14.           }
  15.           else
  16.           {
  17.             $("#msgbox").fadeTo(200,0.1,function()  
  18.             {
  19.              
  20.               $(this).html('nombre de usuario disponible para registrar').addClass('messageboxok').fadeTo(900,1);  
  21.             });
  22.           }
  23.                
  24.         });
  25.  
  26.     });



Código HTML:
Ver original
  1. <label>Usuario</label>
  2. <input type="text" name="usuario" id="usuario" class="span12 input-mini">
  3. <span id="msgbox" style="display:none"></span>


Código PHP:
Ver original
  1. $user_name=$_POST['user_name'];
  2.  
  3. $usuario = 'postgres';
  4. $contrasenia = '****';
  5.    
  6.             try {
  7.                 $db = new PDO('pgsql:host=localhost;dbname=volcanoes',$usuario,$contrasenia);
  8.                 //$db = new PDO('pgsql:host=192.168.102.200;dbname=volcanoes',$usuario,$contrasenia);
  9.                 }catch(PDOException $e) {
  10.                 //echo $e->getMessage();
  11.                 echo "Usuario y Clave Invalidas";
  12.                 throw new Exception("Usuario y Clave Invalidas", 0, $e);
  13.                 }
  14.                
  15. $consulta = $db->prepare("SELECT * FROM usuarios WHERE usu_usuario ='$user_name'");
  16. $consulta->execute();
  17. $cuenta = $consulta->rowCount();
  18.  
  19. if ($cuenta == 1)
  20. {
  21.     //user name is not availble
  22.     echo "no";
  23. }
  24. else
  25. {
  26.     //user name is available
  27.     echo "yes";
  28. }
  #8 (permalink)  
Antiguo 29/12/2012, 15:09
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 3 meses
Puntos: 6
Respuesta: como integrar funcion para validar y funcion para validar nombre de usuari

emprear me indica
Cita:
quizás un evento onkeyup fuese más recomendable
probando encontre $("#usuario").bind('keyup', function() pero no funciona como bien porque es como lento , ya que la comprobacion se realiza cada que se deja de pulsar una tecla

como lo mejoro?

Última edición por Montes28; 29/12/2012 a las 22:20
  #9 (permalink)  
Antiguo 01/01/2013, 18:06
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: como integrar funcion para validar y funcion para validar nombre de usuari

De la siguiente forma parece que funciona bien, pero habria que mejorar la validación del campo de usuario vacío

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="es-ar">
  3. <meta charset="utf-8" />
  4. <title>Html5</title>
  5. <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
  6. <script type="text/javascript">
  7. //<![CDATA[
  8. $(document).ready(function(){
  9. $("#usuario").blur(function(){
  10.        var usuario = $(this).val();
  11.        
  12.      if(usuario != ""){
  13.        
  14.        $("#msgbox").removeClass().addClass('messagebox').text('Comprobando...').fadeIn("slow");
  15.        $.post("a.php",{ user_name:$(this).val() } ,function(data)
  16.        {
  17.         if(data=='no')
  18.          {
  19.            $('#usuario').val("");
  20.            $("#msgbox").fadeTo(200,0.1,function()
  21.            {
  22.             $(this).html(usuario+' '+'Este nombre de usuario ya existe en el sistema').addClass('messageboxerror').fadeTo(900,1);
  23.            });    
  24.          }
  25.          else
  26.          {
  27.            $("#msgbox").fadeTo(200,0.1,function()  
  28.            {
  29.            
  30.              $(this).html('nombre de usuario disponible para registrar').addClass('messageboxok').fadeTo(900,1);  
  31.            });
  32.          }
  33.                
  34.        });
  35.        
  36.        } // fin usuario vacio
  37.  
  38.    });
  39.  
  40.  
  41.  
  42.            });  
  43.  
  44. //]]>
  45. </head>
  46.  
  47. <label>Usuario</label>
  48. <input type="text" name="usuario" id="usuario" class="span12 input-mini">
  49. <span id="msgbox" style="display:none"></span>
  50.  
  51. </body>
  52. </html>

y mi php es muy básico, solo para verificar
Código PHP:
Ver original
  1. <?php
  2. $usuario = $_POST['user_name'];
  3. if($usuario == 'Emprear'){
  4. echo "no";
  5. }
  6. ?>

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: formulario, funcion, html, input, integrar, nombre, php, usuarios
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 13:17.