2010-12-10 12 views
1

Je suis coincé dans un problème de travail sur mon projet dans CakePHP.CakePHP ajax render à une autre vue

Ceci est mon code:

function publish_link() 
    { 
     Configure::write('debug', 0); 
     if($this->RequestHandler->isAjax()) 
     { 
      $items = $_POST['image_id']; 
      $this->set('selected_list', $items); 
      $this->layout = 'ajax'; 
      $this->render('publish'); 
      exit; 
     } 
    } 


function publish($items = null) { 

     $this->layout = 'box'; 

     if(!empty($this->data['User'])) 
     { 
        //some code 
      } 
} 

Ici l'action publish_link est appelé en utilisant Ajax et il rend à un publish.ctp de fichier de vue différent. Il le restitue et je peux obtenir la valeur définie selected_list correctement, mais après que ce ctp soit rendu, son action de contrôleur publish() est appelée et efface la variable selected_list qui a été définie à partir de publish_link().

Je n'arrive pas à comprendre comment gérer cela.

S'il vous plaît aidez-moi.

Merci

Répondre

0

Je crois, vous essayez de passer la variable d'une action à une autre action. Ce qui n'est pas vraiment la façon dont cakephp fonctionne.

Pour partager variables entre les actions, vous devez les encapsuler dans beforeFilter() fonctionnent comme

function beforeFilter() { 
    if(!empty($_POST['image_id'])) { 
     $items = $_POST['image_id']; 
     $this->set('selected_list', $items); 
    } 
}