Foros del Web » Programando para Internet » Jquery »

Recuperar un texto de PHP con JQuery

Estas en el tema de Recuperar un texto de PHP con JQuery en el foro de Jquery en Foros del Web. Buen dia Aver si alguien me dice en que me estoy equibocando tengo un script de JQuery como sigue: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver ...
  #1 (permalink)  
Antiguo 28/03/2012, 09:37
Avatar de gustavodiazs  
Fecha de Ingreso: junio-2003
Ubicación: Tampico
Mensajes: 31
Antigüedad: 20 años, 11 meses
Puntos: 0
Recuperar un texto de PHP con JQuery

Buen dia

Aver si alguien me dice en que me estoy equibocando

tengo un script de JQuery como sigue:

Código Javascript:
Ver original
  1. function fnGetVal(txtUrl){
  2.   var jsDescripcion = '';
  3.   $.get(txtUrl, function(data){
  4.       alert("Dato cargado: " + data);
  5.       jsDescripcion = data;
  6.    });
  7.    return jsDescripcion;
  8. }

El alert me manda correctamente el texto que se devuelve de un script de PHP, pero al pasar el dato a una variable como sigue:

Código Javascript:
Ver original
  1. var jsProducto = $("#id_producto").val();
  2.    var jsTxtCost = fnGetVal('<?=base_url();?>costo/'+ jsProducto);

la variable jsTxtCost esta en blanco, alguna idea de en que estoy equibocado
Gracias
__________________
Gustavo Diaz Salazar
Tampico Tamulipas Mexico
http://www.diazsalazar.com.mx
  #2 (permalink)  
Antiguo 02/04/2012, 09:51
 
Fecha de Ingreso: enero-2011
Ubicación: Maracay
Mensajes: 5
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: Recuperar un texto de PHP con JQuery

Hola gustavodiazs, esto es un problema que nos ocurre a los que programamos con ajax, desde novatos hasta los mas experimentados, resulta que las funciones de ajax se ejecuta de forma asincrona es decir, que rompen el hilo de ejecución y se ejecutan independiente del flujo normal de ejecución esto hace que tu codigo de retorno en la función fnGetVal se ejecute antes de que recibas los datos desde el servidor a traves de ajax, te explico:

Código Javascript:
Ver original
  1. function fnGetVal(txtUrl){
  2.  var jsDescripcion = '';
  3.  $.get(txtUrl, function(data){
  4.      alert("Dato cargado: " + data);
  5.      jsDescripcion = data;
  6. });
  7.  
  8.    /*este codigo se ejecuta antes que:
  9.       alert("Dato cargado: " + data);
  10.  jsDescripcion = data;
  11.   */
  12. return jsDescripcion;
  13. }

por esto es que la función jQuery.get recibe un parámetro con la función a ajecutar al momento que la función reciba los datos del servidor...

pero en el caso de que necesites el este flujo, puedes hacer a un lado la función jQuery.get y usar la función jQuery.ajax a la cual le puedes pasar un parametro "async" para decirle que no haga la consulta asincronamente sino sincronamente, el codigo quedaría asi:

Código Javascript:
Ver original
  1. function fnGetVal(txtUrl){
  2.   var jsDescripcion = '';
  3.  
  4.   $.ajax({
  5.   url: txtUrl,
  6.   type: 'GET',
  7.   async: false,
  8.   success: function(data){
  9.   alert("Dato cargado: " + data);
  10.   jsDescripcion = data;
  11.  }
  12.   });
  13.  
  14.  return jsDescripcion;
  15. }

de esta forma si estarias forzando a que el código siga el flujo normal.

Saludos

________________

Argenis Fontalvo
http://argenisfontalvo.brandyourself.com
  #3 (permalink)  
Antiguo 04/06/2012, 18:00
Avatar de gustavodiazs  
Fecha de Ingreso: junio-2003
Ubicación: Tampico
Mensajes: 31
Antigüedad: 20 años, 11 meses
Puntos: 0
Respuesta: Recuperar un texto de PHP con JQuery

Muchisimas gracias.
__________________
Gustavo Diaz Salazar
Tampico Tamulipas Mexico
http://www.diazsalazar.com.mx

Etiquetas: Ninguno
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 10:04.