jQuery: Cómo esperar la respuesta de POST o GET para escribirlo a una variable global
Pregunta de Progger99 | 30/10/2021 a las 20:59
Me gustaría cargar algunos datos nuevos con una función en jQuery para procesarlos más adelante en un lugar diferente en mi script global. Este es mi código hasta ahora:
var num = 0; $.get("myscript.php", {id: id}, function(response){ num = response; }); alert(num); // todavía 0!!!
El problema es: No importa lo que establece la variable "num" en la función de recarga, siempre es 0 al final!
Incluso si establece "num" a algo diferente en la función a mano o si yo uso GET en lugar de POST, ¡no funciona! ¿Alguien tiene una solución para este problema?
Temas Relacionados
MySQL: Saltos de Línea en MySQL
Consejo | 0 Comentarios
Script Batch: Apagar Computadora Windows
Tutorial | 2 Comentarios
JavaScript: Capturar el Envío de un Formulario
Tutorial | 0 Comentarios
PHP: Iterar todas las Variables POST
Pregunta | 1 Respuesta
jQuery: Leer y Cambiar los Valores de los Atributos Data
Tutorial | 0 Comentarios
PHP Formulario: Envíe datos a través de POST y GET al mismo tiempo
Pregunta | 1 Respuesta
jQuery: ¿Hay un Elemento?
Consejo | 1 Comentario
Aviso Importante
Por favor tenga en cuenta: Las contribuciones publicadas en askingbox.com son contribuciones de los usuarios y no deben reemplazar el asesoramiento profesional. No son verificados por independientes y no reflejan necesariamente la opinión de askingbox.com. Aprende más.
Participar
Haga su propia pregunta o escriba su propio artículo en askingbox.com. He aquí cómo.
Para entender este proceso, debe saber que las funciones de jQuery .post() y .get() ambos funcionan de forma asíncrona.
Esto significa lo siguiente: mientras se ejecuta .post() o .get(), el script no está esperando la respuesta o el resultado de esa función. En su lugar, el script continuará inmediatamente. Por lo tanto, antes de que su variable se pueda configurar en otro valor (cargando el script finalmente toma un poco de tiempo), la variable ya está enviada y, por lo tanto, sigue siendo su valor inicial.
Si consciente de .post() y .get() son simplificaciones de la función .ajax(), simplemente puede usar la función .ajax() en su lugar especificando, que la función no debe ejecutarse de manera asíncrona (async:false):
Con esto, debería funcionar. Ahora, la función debe esperar, hasta que el valor esté allí.
29/10/2021 a las 22:34