Foros del Web » Programando para Internet » Javascript »

Inabilitar/Habilitar submit mediante ajax , y error ajax

Estas en el tema de Inabilitar/Habilitar submit mediante ajax , y error ajax en el foro de Javascript en Foros del Web. Hola como les va? , miren tengo una verificacion de usuarios en la cuál quiero que: Si el usuario esta disponible : el submit se ...
  #1 (permalink)  
Antiguo 06/12/2011, 10:40
 
Fecha de Ingreso: noviembre-2011
Mensajes: 11
Antigüedad: 13 años
Puntos: 0
Pregunta Inabilitar/Habilitar submit mediante ajax , y error ajax

Hola como les va? , miren tengo una verificacion de usuarios en la cuál quiero que:
Si el usuario esta disponible : el submit se HABILITE.
Si el Usuario esta usado: el submit se INHABILITE

pero tengo un error , Cuando empiezo a escribir un nombre de usuario al estar disponible por ejemplo : a , ya me habilita el submit , pero cuando termino de escribir : albin y ese usuario esta usado el submit sigue estando habilitado y me muestra que ese usuario esta disponible cuando no lo esta.


index.php
Código Javascript:
Ver original
  1. <script src="Verificar.js" type="text/javascript" language="javascript"></script>

Código HTML:
Ver original
  1. Usuario:<br />
  2. <input type="text" name="Usuario" onkeyup="Comparar(); return true;" id="Usuario" placeholder="Elije tu nombre de Usuario" required="required">
  3. <div id="Estado"></div><br />
  4. <input type="submit" name="Envio" id="Envio" value="Ingresar" disabled="disabled" />

Verificar.js

Código Javascript:
Ver original
  1. function Comparar(){
  2.    
  3.     /* Variable ajax */
  4.     var ajax = new XMLHttpRequest();
  5.    
  6.     /* Valor del input */
  7.     var Valor = document.getElementById('Usuario').value;
  8.  
  9.     /* Estados */
  10.     ajax.onreadystatechange = function(){
  11.        
  12.         /* Si se esta prosesando */
  13.         if(ajax.readyState==1 || ajax.readyState==2 || ajax.readyState==3){
  14.             document.getElementById('Estado').innerHTML='Se esta determinando la validacion...';}
  15.            
  16.         /* Si ya termino de cargar */  
  17.         if(ajax.readyState==4){
  18.            
  19.             /* Si el usuario esta disponible */
  20.             if(ajax.responseText==0){
  21.                 document.getElementById('Estado').innerHTML='El Usuario esta disponible';
  22.                 document.getElementById('Envio').disabled = false;
  23.                 }
  24.            
  25.             /* Si el usuario esta usandose */  
  26.             if(ajax.responseText==1){
  27.                 document.getElementById('Estado').innerHTML='El Usuario esta en uso';
  28.                 document.getElementById('Envio').disabled = true;
  29.                 }
  30.         }
  31.     }
  32.    
  33.         /* Abriendo Pagina */
  34.         ajax.open("POST","Verificar.php?Usuario"+Valor,true);
  35.         ajax.send(null);
  36. }


Verificar.php
Código PHP:
Ver original
  1. <?
  2. // --- Conexion mysql ---
  3. $Conexion = mysql_connect('localhost','root','lamocosa');
  4. mysql_select_db('ajax',$Conexion);
  5.  
  6. // --- Variable ---
  7. $Usuario = $_GET['Usuario'];
  8.  
  9. // --- Consulta ---
  10. $Consulta = mysql_query("SELECT * FROM usuarios");
  11.  
  12.  
  13. // --- While ---
  14. while($Campo = mysql_fetch_assoc($Consulta) ){
  15. if($Campo['Usuario'] != $Usuario ){
  16.     print 0;
  17.     }else{
  18.     print 1;
  19.         }
  20.     }
  21. // --- Cerrar Mysql ---
  22. mysql_close($Conexion);
  23. ?>


AGRADEZCO DE ANTE MANO A LOS QUE PUEDAN APORTAR ALGUNA SOLUCION ! Y A LOS QUE NO TAMBIEN :D
  #2 (permalink)  
Antiguo 06/12/2011, 12:42
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: Inabilitar/Habilitar submit mediante ajax , y error ajax

falta verificar ajax.status == 200, consulte un manual de AJAX.

PD: es el error más común en novatos de ésta técnica

2 - muchas veces, desde el server se envían caracteres invisibles, complicando comparar del lado del cliente, puede usar funciones equivalentes a trim() o en su caso parseInt(ajax.responseText)
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 06/12/2011, 13:13
 
Fecha de Ingreso: noviembre-2011
Mensajes: 11
Antigüedad: 13 años
Puntos: 0
Respuesta: Inabilitar/Habilitar submit mediante ajax , y error ajax

Cita:
Iniciado por maycolalvarez Ver Mensaje
falta verificar ajax.status == 200, consulte un manual de AJAX.

PD: es el error más común en novatos de ésta técnica

2 - muchas veces, desde el server se envían caracteres invisibles, complicando comparar del lado del cliente, puede usar funciones equivalentes a trim() o en su caso parseInt(ajax.responseText)
Sigo en la misma.
Código Javascript:
Ver original
  1. function Comparar(){
  2.    
  3.     /* Variable ajax */
  4.     var ajax = new XMLHttpRequest();
  5.    
  6.     /* Valor del input */
  7.     var Valor = document.getElementById('Usuario').value;
  8.  
  9.     /* Estados */
  10.     ajax.onreadystatechange = function(){
  11.        
  12.         /* Si se esta prosesando */
  13.         if(ajax.readyState==1 || ajax.readyState==2 || ajax.readyState==3){
  14.             document.getElementById('Estado').innerHTML='Se esta determinando la validacion...';}
  15.            
  16.         /* Si ya termino de cargar */  
  17.         if(ajax.readyState==4 && ajax.status==200){
  18.            
  19.             /* Si el usuario esta disponible */
  20.             if(parseInt(ajax.responseText)==0){
  21.                 document.getElementById('Estado').innerHTML='El Usuario esta disponible';
  22.                 document.getElementById('Envio').disabled = false;
  23.                 }
  24.            
  25.             /* Si el usuario esta usandose */  
  26.             if(parseInt(ajax.responseText)==1){
  27.                 document.getElementById('Estado').innerHTML='El Usuario esta en uso';
  28.                 document.getElementById('Envio').disabled = true;
  29.                 }
  30.         }
  31.     }
  32.    
  33.         /* Abriendo Pagina */
  34.         ajax.open("POST","Verificar.php?Usuario"+Valor,true);
  35.         ajax.send(null);
  36. }

Etiquetas: ajax, html, php, verificacion
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 12:19.