Recherche…


Exemple de base de CakePHP 2.x

Controller: Dans le Controller, vous devez ajouter le composant RequestHandler. Cela permet à CakePHP de détecter automatiquement les requêtes Ajax (voir: http://book.cakephp.org/2.0/en/core-libraries/components/request-handling.html pour plus d'informations):

class YourController extends AppController {
    public $components = array('RequestHandler');
    //...

    public function ajaxCall() {
        if($this->request->is('ajax'){
            // some code that should be executed
            // ...
            // variables you want to return
            $this->set(compact('firstVariable', 'secondVariable'));
            $this->set('_serialize', array('firstVariable', secondVariable))
    }
}

Voir le code (en utilisant jQuery):

<script>
$.ajax({
    type: 'POST',
    url: '/yourController/ajaxCall',
    success: function (result) {
        // result is a JSON array of the returned Variables
    },
    error: function (result){
        console.log(result);
    }
});
</script>

Requête Ajax dans Cakephp 2.x

Une autre façon d'utiliser ajax dans CakePHP. Cakephp se fournit pour une requête ajax. S'il vous plaît voir l'exemple.

 $data = $this->Js->get('#id')->serializeForm(array('isForm' => true, 'inline' => true));
//on click send request to controller and displays response data in view
$this->Js->get('#button-id')->event(
        'click', $this->Js->request(
                array('controller' => 'Users', 'action' => 'add'), array(
            'update' => '#time', // field you wish to update
            'data' => $data, // Form Data in serialize form
            'async' => true,    
            'dataExpression'=>true,
            'method' => 'POST' // method get or post
                )
        )
);


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow