CakePHP AJAX рендеринга в другой вид - PullRequest
1 голос
/ 10 декабря 2010

Я застрял в проблеме, работая над моим проектом в CakePHP.

Это мой код:

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 (), которое очищает переменную selected_list, которая была установлена ​​из publish_link ().

Я не могу понять, как с этим справиться.

Пожалуйста, помогите мне.

Спасибо

1 Ответ

0 голосов
/ 10 декабря 2010

Я полагаю, вы пытаетесь передать переменную из одного действия в другое.Это не совсем то, как работает cakephp.

Чтобы разделить переменную между действиями, вы должны заключить их в beforeFilter() функцию, подобную

function beforeFilter() {
    if(!empty($_POST['image_id'])) {
        $items = $_POST['image_id'];
        $this->set('selected_list', $items);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...