CakePHP-Fr.Org

Forum francophone du Framework CakePHP

Vous n'êtes pas identifié.

#1 30-06-2016 10:23:26

Lcc
Pitivier
Date d'inscription: 04-06-2015
Messages: 12

[cake3] Retourner une View (ctp) vers un script jQuery

Bonjour a tous,

J'ai une page qui envoi des informations vers un contrôleur pour verification en utilisant jQuery. Le script s'attend a recevoir une page (view ctp) en retour.

Et la c'est le drame car je ne parvient pas a trouver comment le faire.

Merci pour l'aide

version simplifiée:

Code: php

  1. class ApimgtController extends AppController
  2. {
  3. public function checkkey(){
  4.         $this->request->accepts();
  5.    
  6.         Debugger::dump($this->request->data);
  7.         $key=$this->request->data(['KeyId']);
  8.         $vcode=$this->request->data(['Vcode']);
  9.        
  10.         $validator = new Validator();
  11.         $validator
  12.                 ->requirePresence('KeyId')
  13.                  ->add('KeyId', [
  14.                     'numeric' => [
  15.                         'rule' => 'numeric',
  16.                         'message' => 'should be numeric only.',
  17.                     ]
  18.                 ])
  19.                 ->requirePresence('Vcode')
  20.                 ->add('Vcode', 'length', [
  21.                         'rule' => ['minLength', 64],
  22.                         'message' => 'Vcode doit contenir 64 caracteres.'
  23.                         ]);
  24.  
  25.         $errors = $validator->errors($this->request->data());
  26.         if (!empty($errors)) {
  27.             Debugger::dump($errors);
  28.             return View('error');  // erreur de codage
  29.         }
  30.  
  31.  
  32.   return  new View('ok'); // erreur de codage

et le js correspondant (extrait)

Code: php

  1. request = $.ajax({
  2.         url: '<?php echo $this->Html->Url->build(['action' => 'checkkey',
  3.                        'controller'=>'Apimgt' ]); ?>',
  4.         type: "post",
  5.         data: serializedData
  6.       });
  7.       // callback handler that will be called on success
  8.       request.done(function (response, textStatus, jqXHR){
  9.         $("span#result").html(response);
  10.       });
  11.       // callback handler that will be called on failure
  12.       request.fail(function (jqXHR, textStatus, errorThrown){
  13.         // Validation errors response with HTTP 422
  14.         if(jqXHR.status === 422) {
  15.           //process validation errors here.
  16.           var errors = jqXHR.responseJSON; //this will get the errors response data.
  17.           var errorsHtml = '<div class="alert alert-danger"><ul>';
  18.           $.each(errors, function(key,value) {
  19.             errorsHtml += '<li>' + value[0] + '</li>'; //showing only the first error.
  20.           });
  21.           errorsHtml += '</ul></di>';
  22.           $("span#result").html( errorsHtml );
  23.         } else {
  24.           // Log the errors to the console
  25.           console.log(textStatus);
  26.         }
  27.       });

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB
Traduction par FluxBB.fr