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

Conocer resultado de consulta

Estas en el tema de Conocer resultado de consulta en el foro de Frameworks JS en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 02/08/2011, 11:21
 
Fecha de Ingreso: julio-2011
Ubicación: Mexico
Mensajes: 36
Antigüedad: 9 años, 3 meses
Puntos: 1
Pregunta Conocer resultado de consulta

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
  1. $('#nick').blur(function(){
  2.  
  3.           $.post("clases/verificar_usuario.php", { nick: nick }, function(data){
  4.              $("#validacion").html(data);
  5.              
  6.              if($("#validacion p").hasClass('error')){
  7.                  $('#nick').removeClass();
  8.                  $('#nick').addClass('border_rojo');
  9.               }else{
  10.                 $('#nick').removeClass();
  11.                 $("#validacion p").html('');
  12.                 $('#nick').addClass('border_verde');
  13.               }
  14.              
  15.           });
  16.        
  17. });

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
  1. <?php
  2.   include("config.inc.php");
  3.   include("mysql.class.php");
  4.  
  5.   /// Creamos el nuevo objeto de base de datos
  6.   $db = new MySQL();
  7.   /// Abrimos la conexión
  8.   $db->open();
  9.  
  10.   /// Ejecutamos la consulta
  11.   $consulta = $db->consulta("SELECT usr_nick FROM usuarios WHERE usr_nick = '$_POST[nick]'");
  12.   /// Aqui asigno el valor de la consulta a una variable
  13.   if ($row = $db->fetch_array($consulta)) {
  14.   $nick1 = $row["usr_nick"];
  15.   }
  16.   else{
  17.   /// si no existe valor el NOMBRE DE USUARIO esta disponible
  18.   $nick1 = "disponible";
  19.   }
  20.  
  21.   if ($nick1 == "disponible") {
  22.   echo '<p>El nombre de usuario esta disponible</p>';
  23.   }
  24.   else{
  25.   /// Si el nombre de usuario no esta disponible imprimo este paragrafo indicando lo anterior.
  26.   echo '<p class="error">El nombre de usuario ya esta siendo usado</p>';
  27.   }
  28.  
  29.  
  30. ?>

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
  1. $('#nick').blur(function(){
  2.  
  3.           $.post("clases/verificar_usuario.php", { nick: nick }, function(data){
  4.                          // Aqui paso el HTML que arrojo en mi PHP y lo agrego a el div #validacion
  5.              $("#validacion").html(data);
  6.              
  7.              [I][B]if($("#validacion p").hasClass('error')){
  8.                  $('#nick').removeClass();
  9.                  $('#nick').addClass('border_rojo');
  10.                                  // si tiene la clase error el usuario ya existe y hago css para indicar lo anterior
  11.               }else{
  12.                 $('#nick').removeClass();
  13.                 $("#validacion p").html('');
  14.                 $('#nick').addClass('border_verde');
  15.                                 // si no existe igual aplico css para indicar que ese campo ya esta validado
  16.               }[/B][/I]
  17.              
  18.           });
  19.        
  20. });

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
  1. $('#nick').blur(function(){
  2.  
  3.           $.post("clases/verificar_usuario.php", { nick: nick }, function(data){
  4.               if(data){
  5.                              ES TRUE Y TRAE VALOR ENTONCES YA EXISTE EL NOMBRE DE USUARIO
  6.                           }else{
  7.                              ES FALSE NO TRAE VALOR ENTONCES NO EXISTE EL NOMBRE DE USUARIO
  8.                           }
  9.           });
  10.        
  11. });

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!
  #2 (permalink)  
Antiguo 03/08/2011, 00:27
 
Fecha de Ingreso: julio-2011
Ubicación: Mexico
Mensajes: 36
Antigüedad: 9 años, 3 meses
Puntos: 1
Respuesta: Conocer resultado de consulta

Bueno segui esperando alguna respuesta todo el dia, lo bueno es que segui investigando si no me iva a quedar a torado. Mi solucion fu usar, supongo que son variables, JSON encode. De este modo me sirve para lo que necesiaba.

En php defines $data["variable"] = valor;

en el $.post() de jQuery usas el data.variable

Etiquetas: ajax, jquery, php, usuarios, validar
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 02:59.