slo_nik
Новичок
Доброй ночи.
Использую "yii bootstrap", скачал по ссылке http://yiibooster.clevertech.biz/.
С подключением вопроса не возникло, всё работает, ckeditor в том числе.
Но проблема возникла с использованием ckeditor, если выводить форму в модальном окне.
Проблема заключается в том, что текст из полей, которые оформлены через ckeditor, не записывается в БД, в контроллер передаётся пустое поле.
Вот, что у меня получилось.
Форма(_form.php), лишний код убрал.
Модальное окно(index.php)
Контроллер
В результате ошибки обрабатываются, выводятся, но текст из $form->ckEditorRow записать в базу не получается.
Подскажите, пожалуйста, как решить проблему? Целый вечер убил на поиски по форму и google, но пока результат "0".
Заранее благадарю откликнувшихся.
Использую "yii bootstrap", скачал по ссылке http://yiibooster.clevertech.biz/.
С подключением вопроса не возникло, всё работает, ckeditor в том числе.
Но проблема возникла с использованием ckeditor, если выводить форму в модальном окне.
Проблема заключается в том, что текст из полей, которые оформлены через ckeditor, не записывается в БД, в контроллер передаётся пустое поле.
Вот, что у меня получилось.
Форма(_form.php), лишний код убрал.
Код:
<?php
$form=$this->beginWidget('bootstrap.widgets.TbActiveForm',
array(
'id'=>'articles-form',
'type'=>'inline',
'action'=>false,
'enableAjaxValidation'=>true,
)
);
?>
<?php echo $form->textFieldRow($model,'articles',array('size'=>60,'maxlength'=>150,
'placeholder'=>'Заголовок (обязательно)',
'style'=>'width:900px')
); ?>
<?php echo $form->ckEditorRow($model,'descr',array('editorOptions'=>array('fullpage' => 'js:true',
'width'=>'910',
'resize_maxWidth'=>'640',
'resize_minWidth'=>'320',
'placeholder'=>'Анонс статьи (обязательно)',
'plugins'=>'toolbar,wysiwygarea,basicstyles,list,link,image,flash,table,format,font,pagebreak,scayt,preview,colorbutton,blockquote,filebrowser,justify,undo,maximize,confighelper'
)
)
);
?>
<div class="controls-inline">
<?php
$this->widget(
'bootstrap.widgets.TbButton',
array(
'buttonType' => 'ajaxSubmit',
'type'=>'action',
'url'=>array($action),
'label' => $model->isNewRecord ? 'Создать' : 'Обновить',
'ajaxOptions'=>array('type'=>'POST',
'success'=>'function(data){
var response = jQuery.parseJSON(data)
if(response.type == "success"){
window.location.href = "articles"
}
if(response.type == "error"){
var Modal = (response.answer == "create") ? "#createModalArtcl" : "#updateModalArtcl";
var err = jQuery.parseJSON(response.content)
$.each(err, function(key, value){
$(Modal).find("#"+key+"_em_").show()
$(Modal).find("#"+key+"_em_").text(\'\'+value).fadeOut(6000)
});
}
}'
)
)
);
?>
</div>
<?php $this->endWidget(); ?>
Код:
<?php
$this->beginWidget('bootstrap.widgets.TbModal',
array(
'id' => 'createModalArtcl',
'htmlOptions'=>array('style'=>'width:960px')
)
);
?>
<div class="modal-header">
<a class="close" data-dismiss="modal">×</a>
<h4>Новая статья</h4>
</div>
<div class="modal-body">
<?php $this->renderPartial('_form', array('model'=>$model)); ?>
</div>
<?php $this->endWidget(); ?>
Код:
public function actionAjaxcreate()
{
$model = new Articles;
if(Yii::app()->request->isAjaxRequest){
if(isset($_POST['Articles'])){
$model->attributes=$_POST['Articles'];
if($model->save()){
$data = array('type'=>'success', 'answer'=>'Успех');
Yii::app()->user->setFlash('success','Статья успешно создана.');
echo json_encode($data);
}
else{
$content = CActiveForm::validate($model);
$data = array('type'=>'error', 'answer'=>'create', 'content'=>$content);
echo json_encode($data);
Yii::app()->end();
}
}
Yii::app()->end();
}
}
Подскажите, пожалуйста, как решить проблему? Целый вечер убил на поиски по форму и google, но пока результат "0".
Заранее благадарю откликнувшихся.