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

Obtener una variable seteada con XAJAX

Estas en el tema de Obtener una variable seteada con XAJAX en el foro de Frameworks JS en Foros del Web. Hola, mi problema es el siguiente... Uso PHP, y tengo una funcion que se ejecuta al hacer click en un link... Esta funcion esta escrita ...
  #1 (permalink)  
Antiguo 26/05/2007, 14:05
 
Fecha de Ingreso: febrero-2007
Mensajes: 18
Antigüedad: 17 años, 2 meses
Puntos: 2
Obtener una variable seteada con XAJAX

Hola, mi problema es el siguiente...

Uso PHP, y tengo una funcion que se ejecuta al hacer click en un link... Esta funcion esta escrita en PHP y el gestor de AJAX que uso es XAJAX... La funcion es check_if_logged(), y basicamente es:
Código PHP:
if($user->logged()) 
$objResponse->addScript("var x = 1;");
else
$objResponse->addScript("var x = 0;");
return 
$objResponse
Bien, esta funcion la llamo desde mi sitio HTML:
Código HTML:
<script>
function check(){
xajax_check_if_logged();
if(x==1) {
return true;
} else {
alert('Debes estar logueado');
return false;
}
}
</script>
<a href="download.php?f_id={file_id}" onclick="return check();">Descarga</a> 
Bien, la idea es esta: Tengo un formulario de login que funciona con AJAX, el usuario se loguea sin tener que recargar la pagina. EN una seccion de descargas p.ej., quiero que la funcion check() se ejecute al pulsar sobre el link de descarga, y dependiendo del valor de la variable x que me devuelva un alert o que siga el link. Si el usuario ingreso a la pagina donde se encuentra el link sin loguearse, y pulsa en boton ded descarga, le sale el alert, entonces se loguea (con AJAX), y ahora la funcion check() debe devolver true.

El problema es que siempre me devuelve false en el primer intento (En el primer click despues de loguearse), y despues recien devuelve el true, por qué? Lo mismo pasa al salir, que tambien es con AJAX. CIerra sesion, pero aun asi puiede presionar el link de descargas una vez mas, y despues recien se desactiva...

Se me ocurrio pensar que la variable x se setea una vez que todo el javascript se ha ejecutado, y.... buenmo espero que se me haya entendido y que me puedan ayudar....

:)
  #2 (permalink)  
Antiguo 03/07/2007, 20:53
 
Fecha de Ingreso: julio-2007
Mensajes: 1
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: Obtener una variable seteada con XAJAX

Hola, yo también tenía el mismo error, así que estuve buscando la forma de resolverlo, no encontré en google alguna ayuda para resolverlo.

La única forma que encontré para evitar tener que dar doble click para enviar un formulario fue llamando con javascript la acción correspondiente.

En mi caso, como era un formulario, utilicé por default que regresara falso al enviar el formulario.

Luego, cuando Xajax hace las validaciones correspondientes en lugar de establecer una variable como TRUE, asigné a la respuesta de xajax la acción que sigue a la validación.

Por ejemplo, para un formulario asigné:
Código PHP:
$objResponse->script("document.getElementById('formulario').submit();");
# Nota, si usas xajax 0.2, sería addScript. 
Para tu ejemplo sería:

PHP:
Código PHP:
if($user->logged()) {
$objResponse->addScript("window.location='download.php?f_id={file_id}'");
}

return 
$objResponse
HTML:
Código HTML:
<script>
function check(){
xajax_check_if_logged();
return false;
}
</script>
<a href="javascript: return check();">Descarga</a> 
Si alguien tiene una mejor solución...
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:16.