Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Problema evaluando el resultado de una petición post

Estas en el tema de Problema evaluando el resultado de una petición post en el foro de Jquery en Foros del Web. Hola, Llevo unos días liado con un problema, del cual no logro encontrar solución (aunque seguro que la solución es la más obvia que tengo ...
  #1 (permalink)  
Antiguo 19/05/2015, 13:27
 
Fecha de Ingreso: febrero-2005
Ubicación: Valencia
Mensajes: 101
Antigüedad: 19 años, 8 meses
Puntos: 15
Problema evaluando el resultado de una petición post

Hola,
Llevo unos días liado con un problema, del cual no logro encontrar solución (aunque seguro que la solución es la más obvia que tengo delante de las narices, pero no la veo).
El problema es que tras hacer una petición post, el resultado devuelto es el correcto (haciendo un console.log lo veo), pero en cambio, si hago un eval(), coge el valor anterior de la variable.
Código:
//[....]
var options = "valor1";
//[...]
$.post("peticion.php,function(customOptions){
    options = customOptions;
    console.log("Custom: "+customOptions);
});
console.log("Options: "+options)
eval(options);
Esto es porque se ejecutan antes las líneas de fuera del $.post, que el $.post (cuando lo que yo quiero es que se ejecute secuencialmente). El problema ya está identificado, ahora es cuando no logro hacerlo de ninguna manera...
¿Alguna ayudita?
Saludos
  #2 (permalink)  
Antiguo 19/05/2015, 19:26
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Problema evaluando el resultado de una petición post

En jQuery existe un método llamado ajaxStop el cual se ejecuta al termina una petición asíncrona. Podrías tomar ahí el valor de options.

Código Javascript:
Ver original
  1. $(document).ajaxStop(function(){
  2.     alert(options);
  3. });

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 20/05/2015, 02:23
 
Fecha de Ingreso: febrero-2005
Ubicación: Valencia
Mensajes: 101
Antigüedad: 19 años, 8 meses
Puntos: 15
Respuesta: Problema evaluando el resultado de una petición post

Hola @Alexis88,
Muchas gracias, no había caído en ajaxStop...
Pongo aquí el código correcto por si esto le puede ayudar a otros usuarios.
Código PHP:
//[....]
var options "valor1";
//[...]
$.post("peticion.php,function(customOptions){
    options = customOptions;
});
var self = this;
$(document).ajaxStop(function(){
    eval(options);
}); 
Para poder acceder a this en eval, creo la variable self que cachee el valor de this (ya que no es accesible desde dentro del ajaxStop).
Saludos
  #4 (permalink)  
Antiguo 20/05/2015, 10:55
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Problema evaluando el resultado de una petición post

De preferencia, evita usar la función eval o expondrás a tu aplicación a severos problemas de seguridad.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 20/05/2015, 11:04
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 11 años, 2 meses
Puntos: 578
Respuesta: Problema evaluando el resultado de una petición post

¿Y por qué no usas la variable self sin más?
  #6 (permalink)  
Antiguo 26/05/2015, 03:36
 
Fecha de Ingreso: febrero-2005
Ubicación: Valencia
Mensajes: 101
Antigüedad: 19 años, 8 meses
Puntos: 15
Respuesta: Problema evaluando el resultado de una petición post

Cita:
Iniciado por Alexis88 Ver Mensaje
De preferencia, evita usar la función eval o expondrás a tu aplicación a severos problemas de seguridad.
Saludos
Ya, lo sé, pero la petición POST recoge unas variables según las cuales devuelve unas opciones u otras al setoptions, y la única opción de hacerlo es llamar al eval para que ejecute ese código javascript devuelto.
Cita:
Iniciado por PHPeros Ver Mensaje
¿Y por qué no usas la variable self sin más?
Lo que hago es hacer una variable temporal, ya que this no es accesible desde dentro de la condición.
  #7 (permalink)  
Antiguo 26/05/2015, 08:13
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 11 años, 2 meses
Puntos: 578
Respuesta: Problema evaluando el resultado de una petición post

Puedes hacerlo sin eval seguro. ¿Qué evalúas exactamente?
  #8 (permalink)  
Antiguo 26/05/2015, 08:42
 
Fecha de Ingreso: febrero-2005
Ubicación: Valencia
Mensajes: 101
Antigüedad: 19 años, 8 meses
Puntos: 15
Respuesta: Problema evaluando el resultado de una petición post

Cita:
Iniciado por PHPeros Ver Mensaje
Puedes hacerlo sin eval seguro. ¿Qué evalúas exactamente?
Evaluo la siguiente condición:
Código PHP:
self.setOptions({...}); 
La cual modifica los valores de un calendario jquery, dependiendo de unos datos pasados al script que procesa la petición post, el cual devuelve lo indicado anteriormente.
  #9 (permalink)  
Antiguo 26/05/2015, 09:45
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 11 años, 2 meses
Puntos: 578
Respuesta: Problema evaluando el resultado de una petición post

También podrías trabajar con JSONP, hay muchas alternativas a lo que propones.

Etiquetas: post, resultado
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 05:55.