Formulario Ajax en Cakephp

 

cakePhp

Algo que a veces queremos hacer, es al tener un formulario, ver los datos enviados desde el formulario si refrescar la página.
Un ejemplo de como hacerlo añadiendo un album, con un campo nombre.

Hay dos cosas a tener en cuenta, el envio del formulario es ajax, pero tambien el div donde cargaremos los resultados es ajax.

$content .= $this->Ajax->div('calendars');
foreach ($calendars as $calendar){
$content .=$interestDestination["InterestDestination"]["name"];
}
$content .=  $this->Ajax->divEnd('calendars');

$content .= $this->Ajax->form('/calendars', 'post', array('update' => 'calendars'));
$content .= $this->Form->input('name', array('label' => 'Agregar Nuevo Grupo:', 'error' => __('Nombre no valido', true)));
$content .= $this->Form->submit('Añadir',array('escape'=>false));
$content .= $this->Form->end();

return $content

Podemos ver que el update del form tiene el mismo nombre que le div Ajax, está observación es importante ya que el formulaior hace la llamada a este div, y esté div es el que se refrescará sin tener que refrescar toda la página.

En el controlador deberemos tener en cuenta, el añadir var $helpers = array(‘Ajax’);

Y también en la función en este caso “calendars” que ejecutamos desde nuestro formulario, deberemos hacer un render a la página donde se encuentra el mismo formulario.
Por ejemplo si nuestro formulario está en nuestro index $this->render(‘index’, ‘ajax’);

  • vengo del blog de yises y me encontré con este enlace, vá directo a bookmarks!

    Muy buenos tus artículos sobre cake:) , no soy muy amigo de los frameworks pero de los pocos que he usado cakephp y zend son los mejores que conozco.

  • deldan

    si yo no era muy fan de los frameworks, pero tiene sus puntos fuertes. Gracias por comentar, aunque ahora me pones presión para seguir escribiendo al mismo nivel, jejeje, un saludo

  • Por supuesto, en cuanto bajes el nivel de tus artículos no te leo más 😛 jaja