Foros del Web » Programando para Internet » Jquery »

Variable dentro de success de $.ajax

Estas en el tema de Variable dentro de success de $.ajax en el foro de Jquery en Foros del Web. Hola a todos tengo un problema algo extraño estoy intentando insertar unos valores en un array dentro de la funcion success de jquery, la insercion ...
  #1 (permalink)  
Antiguo 21/08/2012, 08:57
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años, 1 mes
Puntos: 47
Variable dentro de success de $.ajax

Hola a todos tengo un problema algo extraño estoy intentando insertar unos valores en un array dentro de la funcion success de jquery, la insercion la hace bien solo que al salir del $.ajax nose ven los resultados de la operacion que hice dentro de el x ejemplo:
Código Javascript:
Ver original
  1. var colores = ["rojo"];
  2.  
  3. $.ajax({
  4. success : function (json) {
  5. colores.push("azul","verde");
  6. alert(colores); // retorna rojo,azul,verde
  7. }
  8. })
  9.  
  10. alert(colores); retorna rojo

tambien probe haciendo la variable global aunque estando fuera de la funcion ya deberia serlo:

Código Javascript:
Ver original
  1. colores = ["rojo"];
  2.  
  3. $.ajax({
  4. success : function (json) {
  5. colores.push("azul","verde");
  6. alert(colores); // retorna rojo,azul,verde
  7. }
  8. })
  9.  
  10. alert(colores); retorna rojo

probe tambien declarar una variable global de prueba dentro de success y luego mostrarla por fuera pero tampoco tuve suerte:

Código Javascript:
Ver original
  1. $.ajax({
  2. success : function (json) {
  3. texto = "global dentro de success"
  4. alert(texto); // retorna "global dentro de success"
  5. }
  6. })
  7.  
  8. alert(texto); // retorna Error:texto is not defined

Alguna sugerencia? Gracias
  #2 (permalink)  
Antiguo 21/08/2012, 09:24
 
Fecha de Ingreso: enero-2012
Ubicación: Caracas
Mensajes: 75
Antigüedad: 12 años, 3 meses
Puntos: 21
Respuesta: Variable dentro de success de $.ajax

creo que tu problema es que el ajax es asincrono!!! si el segundo alert lo hace justo luego de salir del $.ajax... es logico que arroje este error!!!

prueba creando un boton deshabilitado que luego de ejecutar el ajax, en el success se le habilite y onclick haga alert(colores);
  #3 (permalink)  
Antiguo 21/08/2012, 11:01
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Variable dentro de success de $.ajax

bueno otra forma aunque no muy recomendable es poner en tu ajax de JQuery como parametro async: "false"
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones

Etiquetas: ajax, funcion, js, success, variables
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 14:04.