Foros del Web » Programando para Internet » Jquery »

Problema con jQuery

Estas en el tema de Problema con jQuery en el foro de Jquery en Foros del Web. Hola a todos: soy nuevo jQuery y estoy haciendo u scriop pero hay una parte que no me funciona como deceo la idea es esta: ...
  #1 (permalink)  
Antiguo 27/04/2012, 08:46
 
Fecha de Ingreso: octubre-2009
Mensajes: 104
Antigüedad: 15 años, 2 meses
Puntos: 0
Problema con jQuery

Hola a todos: soy nuevo jQuery y estoy haciendo u scriop pero hay una parte que no me funciona como deceo

la idea es esta:

esat es mi function en jquery
Código Javascript:
Ver original
  1. function dime_fecha_valida(){
  2.         var respuesta1 = '' ;
  3.         $.ajax({
  4.         type: "POST",
  5.         url: "script/validate_fecha.php",
  6.         data: {nomUsuario : document.getElementById("rffrom").value},
  7.         success: function( respuesta )
  8.         {
  9.             if (respuesta == 1 )
  10.                 respuesta1 = 1 ;
  11.             else
  12.                                 respuesta1 = 2 ;
  13.         }
  14.         })
  15.         return respuesta1 ;
  16.     }

aca lo que quiero hacer es pasar a una pagina php una fecha y que se me valide en la pagina php y me responda 1 si true o 2 si false.

y tengo esta otra funcion

Código Javascript:
Ver original
  1. function contador()
  2. {
  3.     if ( dime_fecha_valida() == 2 )
  4.     {
  5.         alert('La fecha es incorecta.')
  6.     }
  7. }
  8. setInterval('contador()',3000);

puedo eso hacerlo de esa forma...
Puedo llamar a la function dime_fecha_valida() y que me de ese resultado como lo quiero?
Porque actualmenter no me da ninguno y no se que mas hacer

saludos
  #2 (permalink)  
Antiguo 27/04/2012, 09:00
Avatar de Dafonz  
Fecha de Ingreso: octubre-2009
Mensajes: 127
Antigüedad: 15 años, 2 meses
Puntos: 36
Respuesta: Problema con jQuery

Si puedes hacerlo de esa forma, mas bien el problema debe estar en la respuesta del php.. también si el php te regresa 1 o 2 ¿porque haces el if?.. tambien te recomiendo usar $.post es la misma pero mas simplificado:
Código Javascript:
Ver original
  1. $.post("script/validate_fecha.php",{nomUsuario : $("#rffrom").val()}, function(respuesta) {return (respuesta == 1) ? 1 : 2});
  #3 (permalink)  
Antiguo 27/04/2012, 09:14
 
Fecha de Ingreso: octubre-2009
Mensajes: 104
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Problema con jQuery

Amigo a la verdad que no entiendo porque no trabaja pero sigue igual

mira
page php
Código PHP:
Ver original
  1. echo 1 ;

y estas son las function javascript

Código Javascript:
Ver original
  1. function dime_fecha_valida(){
  2.                         var respuesta1 = '' ;
  3.                             $.ajax({
  4.                                 type: "POST",
  5.                                 url: "script/validate_fecha.php",
  6.                                 data: {nomUsuario : document.getElementById("rffrom").value},
  7.                                 success: function( respuesta )
  8.                                 {
  9.                                      return (respuesta == 1) ? 1 : 2 ;
  10.                                 }
  11.                             })
  12.                         //  return respuesta1 ;
  13.                         }
  14.                    
  15.                     var entrar = 0 ;
  16.                     //$(document).data('fecha', document.getElementById("rffrom").value)
  17.                     function contador()
  18.                     {
  19.                         //aqui veo si me devuelve  lo que quiero pero siempre me devuelve 2
  20.                         if ( dime_fecha_valida() == 1 ) alert(1); else alert(2);                       
  21.                    
  22.                         if ( entrar == 0 )
  23.                         {
  24.                             if ( document.getElementById("rffrom").value != '' )
  25.                             {
  26.                                 dime_fecha_valida();
  27.                                 $(document).data('fecha', document.getElementById("rffrom").value) ;
  28.                                 entrar = 1;
  29.                             }
  30.                         }
  31.                     }
  32.                     setInterval('contador()',3000);

Siempre retorna 2 cuando hago la llamada en if ( dime_fecha_valida() == 1 ) alert(1); else alert(2);

que podria ser¿...?
  #4 (permalink)  
Antiguo 27/04/2012, 10:57
Avatar de Dafonz  
Fecha de Ingreso: octubre-2009
Mensajes: 127
Antigüedad: 15 años, 2 meses
Puntos: 36
Respuesta: Problema con jQuery

la verdad no había visto bien el código, me disculpo por dar mal info, la variable de arriba si es necesaria ya que el return si no puede ser desde el ajax. yo probe esto y si me funciono:

Código Javascript:
Ver original
  1. function prueba() {
  2.     var resultado;
  3.     $.ajax({
  4.         type: "POST",
  5.         url: "test.php",
  6.         data: {nomUsuario : 1},
  7.         async: false,
  8.         success: function( respuesta ){
  9.             resultado = respuesta;        
  10.         },
  11.         error : function(){
  12.             alert("error");
  13.         }
  14.     });
  15.     return resultado;
  16. }
  17.             alert(prueba());

y en el php tengo:
Código PHP:
Ver original
  1. <?php
  2.     echo $_POST["nomUsuario"]
  3. ?>

También agregue error: que es en caso de que no funcione el ajax que quieres que haga te recomiendo usarlo y mas si estas teniendo problema y no sabes que esta devolviendo y así.
  #5 (permalink)  
Antiguo 27/04/2012, 11:16
 
Fecha de Ingreso: octubre-2009
Mensajes: 104
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Problema con jQuery

HOla lo he probado y lo que me retorna es "undefined"

Código Javascript:
Ver original
  1. function prueba()
  2.                         {
  3.                             var resultado;
  4.                             $.ajax({
  5.                                 type: "POST",
  6.                                 url: "script/validate_fecha.php",
  7.                                 data: {nomUsuario : 1},                            
  8.                                 success: function( respuesta ){
  9.                                     resultado = respuesta;        
  10.                                 },
  11.                                 error : function(){
  12.                                     alert("error");
  13.                                 }
  14.                             });
  15.                             return resultado;
  16.                         }
  17.                         alert(prueba());

Yo a url: "script/validate_fecha.php", esta pagina php le paso el valor que esta data: {nomUsuario : 1},

y entonces la page php hace su operacion y me tiene que tirar para atras un 1 o un 2 y en dependencia sigo pero ese 1 ó 2 quiero tenerlo en una variable.

ejemplo var validar = prueba() ;
  #6 (permalink)  
Antiguo 27/04/2012, 12:22
Avatar de Dafonz  
Fecha de Ingreso: octubre-2009
Mensajes: 127
Antigüedad: 15 años, 2 meses
Puntos: 36
Respuesta: Problema con jQuery

async: false
Cita:
The first letter in Ajax stands for "asynchronous," meaning that the operation occurs in parallel and the order of completion is not guaranteed. The async option to $.ajax() defaults to true, indicating that code execution can continue after the request is made. Setting this option to false (and thus making the call no longer asynchronous) is strongly discouraged, as it can cause the browser to become unresponsive.
Por eso te devuelve undefined (aunque arriba si le habia puesto async false, por eso si me funciono), ve que es lo que mas te conviene, mas que todo por la advertencia que mencionan. Pero en este caso necesitas la respuesta para que el código siga por eso lo puse.

Última edición por Dafonz; 27/04/2012 a las 12:28
  #7 (permalink)  
Antiguo 04/05/2012, 15:54
 
Fecha de Ingreso: octubre-2009
Mensajes: 104
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Problema con jQuery

Muchas gracias Dafonz, ya me trabaja de maravilla ... saludos

Etiquetas: ajax, funcion, php
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 18:20.