pasar el resultado de una peticion ajax a una variable

1,747 views
Skip to first unread message

yesGood

unread,
Apr 5, 2009, 10:07:38 AM4/5/09
to symfony-es
hola a todos, estoy usando una llamada ajax para realizar calculos, y
necesito pasar a una variable el resultado que me devuelve la
llamada , para poder guardar en la base..

mi llamada es la sgte:

<div id='total'> </div>

<?php echo link_to_remote('sumar monto', array(
'update' => 'total',
'url' => 'prestamo/sumar',
'with' => "'monto='+ $('ahorro_prestamo[monto]').value +
'&monto2='+ $('monto2').value ",
)) ?>

y quiero guardar el resultado de esta llamada en una varible, para
usarla en el action

alguien sabe como hacer esto??


Gracias...

Fonsi82

unread,
Apr 5, 2009, 5:07:22 PM4/5/09
to symfony-es

los parametros los recibes en la acción destino,
dentro del objeto $request,
para obtenerlos con el metodo
$request->getParameter('nombre_parametro'); sería suficiente.

YesGood

unread,
Apr 6, 2009, 8:17:34 AM4/6/09
to symfo...@googlegroups.com
Hola Fonsi82. Gracias por responder
 
Te explico mejor
esta es la llamada ajax que tengo en la vista

<div id='total'> </div>
 <?php echo link_to_remote('sumar monto',  array(
 'update' =>  'total',
 'url'    =>  'prestamo/sumar',
 'with'     => "'monto='+ $('ahorro_prestamo[monto]').value +
'&monto2='+ $('monto2').value ",
 )) ?>
 
esta llama a la  siguiente accion que realiza los calculos 
 
  public function executeSumar()
  {
 $this->monto = $this->getRequestParameter('monto');
    $this->monto2 = $this->getRequestParameter('monto2');
 $resultado = $this->getRequestParameter('monto') +$this->getRequestParameter('monto2');
 $this->total = $resultado;
 return $this->renderText($resultado);
  }

 luego de aqui regresa a la vista refrescando el resultado en la seccion  <div id='total'> </div>
todo bien hasta aqui.. aora lo que necesito hacer es  
 
guardar el resultado que me devuelve la accion  executeSumar en una nueva variable 
para poder usarla luego en una nueva accion que se llama
 
protected function updateAhorroPrestamoFromRequest()
{
 
}// y asi poder almacenar el resultado de la accion executeSumar en la Base de datos
 
Espero se entienda lo que busco hacer
 
Gracias...
 

Fonsi82

unread,
Apr 6, 2009, 12:56:04 PM4/6/09
to symfony-es
ok,
pues puedes meterlo en un campo hidden por ejemplo ,no?

<input type="hidden" value="" id="resultado" name="resultado" />

solo te faltaría meter el valor con javascript.

Como usas el helper no se indicarte que parametro tienes que cambiar ,
sé que en lugar de hacer solo la acción de actulizar la capa,
deberías actulizar la capa y darle valor al campo hidden, para que
vuelva a pasar.

O si no lo quieres pasar de nuevo , por formulario, lo puedes agregar
en la url ..

El tema es que tienes que controlar a la vuelta del la petición que no
solo actualize la capa, sino que te guarde el valor en algún lugar.. o
ideartelas para sacar el la propiedad innerHtml de esa capa .

no?

yesGood

unread,
Apr 6, 2009, 4:12:39 PM4/6/09
to symfony-es
Si, me gusto mas lo de javascript..
seria algo asi..??
esto lo puse en la vista donde esta la llamada ajax y $total le paso
desd la accion executeSumar
<input type = 'text' id='total' name="total" value=' <?php echo
$total ?>'>
<script>
var total= document.getElementById('total').value;
</script>

y para rescatar su valor hice con $this->getRequestParameter
('total');
Pero esto me devuelve NULL.
que es lo que estoy haciendo mal

Gracias
.... Saludos...

Fonsi82

unread,
Apr 7, 2009, 5:34:24 AM4/7/09
to symfony-es
Pues claro, poque $nota no existe en el momento que se ejecuta la
acción.
Por eso te decia que tienes que hacerlo a la vuelta de la petición
Ajax.
En lugar de actulizar la capa solo, actulizar tambien el campo.

Los helpers estan bien , pero si sabes lo que estás haciendo con
ellos.

Te recomiendo que mires más ejemplos de Ajax, con estos helpers.

O que te mires hacer la petición con jQuery por ejemplo .
que sería jQuery.post( url, [data], [callback], [type] )
que en tu caso sería
jQuery.post('prestamo/sumar',
{ monto:<?php echo $('ahorro_prestamo[monto]').value;?> , monto2:<?php
$('monto2').value;?>} ,
function(codigo){ $('#capa1').html(codigo); $
('#campo_oculto').value=codigo }
,'html');

más o menos es el cocepto

espero que te sriva suerte.

yesGood

unread,
Apr 13, 2009, 9:17:42 PM4/13/09
to symfony-es
Hola Fonsi82... perdon x no rsponder a tiempo... estuve intentando
algo de lo que me has dicho, y encontre otra forma de hacer, pero aun
no me funciona

he usado lo sgte en el templates de Sumar
<?php echo use_helper('Javascript') ?>
<?php echo javascript_tag("$(\"'ahorro_prestamo['monto']'_imput_tag
\").value= $total");?>
<?php echo $total?>

y esto me tendria que actualizar en la base de datos el campo
'ahorro_prestamo['monto']' al momento guardar, pero no me hace nada...

sabrias decirme que estoy haciendo mal???


Gracias...
Saludos..
Reply all
Reply to author
Forward
0 new messages