Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/07/2014, 09:37
fablexis
 
Fecha de Ingreso: julio-2014
Mensajes: 1
Antigüedad: 9 años, 10 meses
Puntos: 0
Ajax Cakephp 2.x

Hola a todos! Soy nuevo en la comunidad, escribo porque llevo 2 semanas tratando de utilizar el helper Js de cakephp sin resultados satisfactorios, he buscado en google hasta decir "basta", en youtube viendo tutoriales, he buscado en foros, pero la verdad es que no he logrado hacer funcionar el helper para ajax de cakephp.

Verán el ejemplo que planteo es sencillo, tengo un controlador llamado DriversControllers y una acción llamada "index" con su respectiva vista, lo que trato de hacer es agregar en la vista de la acción index un piloto por medio de un formulario y automáticamente observar que dicho piloto fue agregado a una lista de pilotos ya existente.

EL PROBLEMA, es que al hacer submit en el formulario la respuesta me repite DOS VECES EL CONTENIDO que ya tengo en la vista, no se por qué pasa esto.

Tengo una tabla llamada driver, con los campos, id, name y country.

El codigo del controlador:

<?php
class DriversController extends AppController{
//put your code here
public $helpers = array('Html',"Form", "Js", "Session");



//put your code here
public function index(){
$res = $this->Driver->find('all');
$this->set('res', $res);
//$this->layout = "mi-layout";
if($this->Driver->save($this->data)){
if ($this->request->is('ajax')) {
$this->Session->setFlash('Piloto agregado!');
$res = $this->Driver->find('all');
$this->set('res', $res);




}else{
$this->Session->setFlash('Error al agregar al piloto');
$this->redirect(array('action'=>'index'));
}

}


}

}

Código de la vista:

<h1>Listado de Pilotos</h1>

<div id = "div-ajax">
<?php
if(isset($res)){
foreach ($res as $rp){
echo $rp['Driver']['name']. " ". $rp['Driver']['country']. "<br>";

}
}
?>
</div>
<br>
<hr>

<?php

echo $this->Form->create(array('default' => false));
echo $this->Form->input("name", array('required' => true));
echo $this->Form->input("country", array('required' => true));
echo $this->Js->submit('Agregar', array(
'update' => "#div-ajax",
'async' => true,
'controller' => 'drivers',
'action' => 'index',

));
echo $this->Form->end();

$data = $this->Js->get('#DriverIndexForm')->serializeForm(array('isForm' => true, 'inline' => true));

echo $this->Js->writeBuffer();

Última edición por fablexis; 03/07/2014 a las 09:55