CakePHP和jEditable只显示返回值时显示整个布局视图

时间:2013-01-14 21:20:14

标签: jquery cakephp jeditable

我已经在我的CakePHP应用程序中进行了编辑设置,除了一个问题外,它的效果非常好。当数据成功发布到数据库时,返回值包括已退出的'admin.ctp'布局。我尝试过$this->autoRender = false$this->layout = 'ajax'这样的事情但没有成功。请我的代码如下:

jQuery代码

$('.setting_value').editable('/settings/ajax_edit',{
     id        : 'data[Setting][id]',
     name      : 'data[Setting][value]',
     select: true,
     type      : 'text',
     cancel    : 'Cancel',
     submit    : 'Save',
     tooltip   : 'Click to edit the title',
     indicator: '<img src="/img/admin/ajax-loader.gif">'
});

我的控制器功能

public function ajax_edit(){
    // $this->autoRender = false; // this doesnt seem to work
    // $this->layout = 'ajax' // this does not work as well

    if ($this->request->data) {
        $this->Setting->id = $this->request->data['Setting']['id'];
        $this->Setting->saveField('value', $this->request->data['Setting']['value']);
        $this->set('newvalue', $this->request->data['Setting']['value']);
    }
}

同样,一切都很好,但是当它返回更改后的值时。

1 个答案:

答案 0 :(得分:2)

经过一些尝试,我能够弄清楚。所以我按照以下内容更新了我的功能:

public function ajax_edit(){
    $this->autoRender = false;

    if ($this->request->data) {
        $this->Setting->id = $this->request->data['Setting']['id'];
        $this->Setting->saveField('value', $this->request->data['Setting']['value']);
        return $this->request->data['Setting']['value'];
    }
}

基本上,我必须设置autoRender = false并返回新值而不是使用视图文件来显示。它现在可以正常工作。