2010-12-10 82 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); 
    } 
}