通过ajax cakephp 2.x加载视图

时间:2013-10-08 15:18:53

标签: ajax cakephp cakephp-2.3

我想通过ajax在我的视图上加载项目列表这是我在lst.cpt上的代码

<div id='benpane' class='clearfix'>
  <script type="text/javascript">
  <?php echo $ajax->remoteFunction(array(
    'url'=>array('controller'=>'benefits', 'action'=>'display'),
    'update'=>'benpane',
    'indicator'=>'benIndicator'
  )); ?>
  </script>
</div>

这是我的控制器中的lst函数

function lst() {
        $this->paginate = array('order' => array('ben_name' => 'ASC'),'conditions' => array($this->Benefit->parseCriteria($this->passedArgs)));
        $benefit = $this->paginate('Benefit');
        $this->set('bens', $benefit);
      }

当我尝试打开视图时出现错误

Error: Call to a member function remoteFunction() on a non-object   
File: /var/www/hassportal/app/View/Benefits/lst.ctp 
Line: 14

我可能做错了什么?

2 个答案:

答案 0 :(得分:1)

除了Ajax Helper已被弃用(和/或你可能没有使用cakephp 2.x)之外,你似乎在调用错误的行为:

'action'=>'display'

应该是:

'action'=>'lst'

此外,我会将代码移到DIV之外,该代码应该使用来自该操作的数据进行更新。

答案 1 :(得分:0)

使用此

$this->Ajax->remoteFunction

坚持

$ajax->remoteFunction

例如: -

<?php echo $this->Ajax->remoteFunction(array(
    'url'=>array('controller'=>'benefits', 'action'=>'display'),
    'update'=>'benpane',
    'indicator'=>'benIndicator'
  )); ?>