2010-12-10 75 views
1

我被困在我的CakePHP項目中的一個問題上。CakePHP ajax呈現給不同的視圖

這是我的代碼:

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 
      } 
} 

這裏publish_link動作使用Ajax調用,它呈現到不同的視圖文件publish.ctp。

它呈現它,我可以正確地獲得設置值selected_list,但在此ctp呈現後,其控制器操作publish()被調用,並且將從publish_link()設置的變量selected_list置空。

我不明白如何處理這個。

請幫我一把。

感謝

回答

0

我相信,你正在試圖從一個動作到另一個動作傳遞變量。這不是cakephp工作的方式。

要共享行動中的變量,你應該封裝他們beforeFilter()之類的函數

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