Ver Mensaje Individual
  #2 (permalink)  
Antiguo 23/10/2009, 00:53
Avatar de nflamel
nflamel
 
Fecha de Ingreso: agosto-2005
Ubicación: Granada
Mensajes: 41
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Funcion que retorna un valor en Prototype

Cita:
Iniciado por Miguelpunk22 Ver Mensaje
Tengo esta funcion Ajax-prototype:

Código:
function RecalcularImporte(idguia,idproducto,cantidad){

new Ajax.Request ('facturacion.php?op=RecalcularImporte', {
  method: 'POST',
  parameters: {idguia: idguia,idprod: idproducto,cantidad: cantidad},
    onSuccess: function(transport){
       var impor = transport.responseText.evalJSON();
       var imp = parseFloat(impor.importe);
       return imp;
     }
});
esta funcion devuelve un resultado que lo proceso en una funcion javascript

Código:
     var ids = totalIds.sin();
    
    var impor = 0;
    var i=0;
    var impo = new Array;
    
    while(i<ids.length){
     
	  var canti = ObtenerCantFact(ids[i]);
	  var im = RecalcularImporte(idguia,ids[i],canti);
	  
	  alert(im);
	  	 impo[i] = im; 
      
     i++;    	                
    }
        return impo;
el problema es que siempre me devuelve "undefined" y no se como puedo hacer para que me devuelva el valor real.

De antemano les agradesco su ayuda
Necesitas hacer algo tal que así.

Código:
function RecalcularImporte(idguia,idproducto,cantidad){
  var imp;
  new Ajax.Request ('facturacion.php?op=RecalcularImporte', {
    method: 'POST',
    parameters: {idguia: idguia,idprod: idproducto,cantidad: cantidad},
      onSuccess: function(transport){
         var impor = transport.responseText.evalJSON();
         imp = parseFloat(impor.importe);
     }
  });
  return imp;
}
Ten en cuenta que no eres tú quien va a llamar al onSuccess, sino prototype. Por lo tanto el valor que retorna está fuera el contexto en el que actualmente ejecutas la llamada AJAX.

Un saludo!