CForm, renderElements error

Предварительное обсуждение найденных ошибок перед отправкой их авторам фреймворка, а также внесение новых предложений.
Ответить
enchikiben
Сообщения: 127
Зарегистрирован: 2011.12.27, 09:02
Контактная информация:

CForm, renderElements error

Сообщение enchikiben »

Формирую форму через CForm

Код: Выделить всё

$model = new Model();
$Form = CForm(array(
            'attributes' => array(
                'enctype' => 'application/form-data',
                'class' => 'well',
                'id'=>'Form'
            ),
            'activeForm' => array(
                'class' => 'CActiveForm',
                'enableAjaxValidation' => true,
                'enableClientValidation' => false,
                'id' => "Form",
                'clientOptions' => array(
                    'validateOnSubmit' => true,
                    'validateOnChange' => false,
                ),
            ),

            'elements'=>array(
                'Type'=>array(
                    'type'  =>  'dropdownlist',
                    'items' =>  Type::getListType(),
                    'empty'=>  '',
                    'ajax' => array(
                        'type'  =>  'POST',
                        'url'   =>  "",
                        'replace'=>  '#Form',
                    )
                ),
                'Name'=>array(
                    'type'=>'text',
                    'maxlength'=>255
                ),
            ),

            'buttons'=>array(
                '<br/>',
                'submit'=>array(
                    'type'  =>  'submit',
                    'label' =>  $this->isNewRecord ? 'Создать' : "Сохранить",
                    'class' =>  "btn"
                ),
            ),
        ), $model );
 
суть формы такова что при выборе в списке Type уходит ajax запрос на сервер и получают дополнительные поля (тут конечно полей нет, но не в этом суть, мне бы хотя бы чтобы работало для начала), в action я хочу получить код только элементов формы вот так:

Код: Выделить всё

if( Yii::app()->request->isAjaxRequest ){
    echo $Form->renderElements();
    Yii::app()->end();
}
и получаю ошибку
Fatal error: Call to a member function error() on a non-object in /yii/framework/web/form/CFormInputElement.php on line 242
пробовал менять форму элементы все также, но render(), renderButtons() работает на ура, вот такая не понятная ошибка :) к сожалению в своем английском я не не могу написать на github.
Помогите как решить проблему :)
Xedar
Сообщения: 1
Зарегистрирован: 2011.05.12, 15:23
Контактная информация:

Re: CForm, renderElements error

Сообщение Xedar »

Код: Выделить всё

if( Yii::app()->request->isAjaxRequest ){
    echo $Form->renderElements();
    Yii::app()->end();
}
 
Чтобы использовать renderElements необходимо предварительно начать рендер формы:

Код: Выделить всё

   $Form->renderBegin();
   echo $Form->renderElements();
   $Form->renderEnd();
 
Ответить