Ver Mensaje Individual
  #5 (permalink)  
Antiguo 30/05/2017, 13:24
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Problemas con $.post()

No logras visualizar el valor ya que se trata de una petición asíncrona (AJAX), mientras que tú intentas ver el valor en el mensaje de alerta de forma síncrona. Así la respuesta la obtengas en milésimas de segundo, el mensaje de alerta aparecerá antes de completarse la petición.

Tienes como opción el utilizar una llamada de retorno o callback:
Código Javascript:
Ver original
  1. function ajax(callback){
  2.     $.post(/* la página de destino */, {/* los valores a enviar */}, callback);
  3. }
  4.  
  5. //Líneas más abajo
  6. ajax(function(mensaje){
  7.     alert(mensaje);
  8. });
  9.  
  10. //Más abajo
  11. ajax(function(mensaje){
  12.     alert(mensaje);
  13. });
  14.  
  15. //Y más abajo
  16. ajax(function(mensaje){
  17.     alert(mensaje);
  18. });

O utilizando el objeto diferido (promesa) de jQuery:
Código Javascript:
Ver original
  1. var ajax = $.post(/* la página de destino */, {/* los valores a enviar */});
  2.  
  3. //Líneas más abajo
  4. ajax.done(function(mensaje){
  5.     alert(mensaje);
  6. });
  7.  
  8. //Más abajo
  9. ajax.done(function(mensaje){
  10.     alert(mensaje);
  11. });
  12.  
  13. //Y más abajo
  14. ajax.done(function(mensaje){
  15.     alert(mensaje);
  16. });

La diferencia sustancial es que, con las llamadas de retorno, se realizará la petición por cada vez que se invoque a la función, mientras que con el objeto diferido solo se realizará la petición una vez y se podrá acceder al mensaje de respuesta cada vez que queramos.

__________________
«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