Byrger
(Byrger)
January 15, 2011, 1:21pm
1
Привет
Есть форма которую юзер заполняет и при удачной валидации в контроллере происходит такой код
Yii::app()->user->setFlash('support_newtheme', Yii::t('good', 'support_newtheme'));
$this->refresh();
То есть задаем setFlash и сбрасываем все данные из формы
В форме есть такая конструкция
<?php if(Yii::app()->user->hasFlash('support_newtheme')): ?>
<div class="flash-success">
<?=Yii::app()->user->getFlash('support_newtheme');?>
</div>
<?php endif; ?>
То есть если Flash задан то выводим его
В итоге форма сбрасывается а flash не выводится.
Как быть?
Если refresh() убрать то норм выводится но форма не сбрасывается, это не верно
Lion
(Lion__)
January 15, 2011, 2:07pm
2
Не туда вставляешь, покажи повыше и пониже код контроллера
Byrger
(Byrger)
January 15, 2011, 2:42pm
3
$modelMsg = new SupportMsg;
$modelMsg->setScenario('newmes');
$this->performAjaxValidation($modelMsg);
if(isset($_POST['SupportMsg'])){
$modelMsg->attributes=$_POST['SupportMsg'];
$modelMsg->theme_id = $model->id;
if($modelMsg->validate() && $model->status != 'close'){
//если админ то делаем из него оператора
$isOperator = Yii::app()->user->status == 10? true: false;
$res = SupportMsg::createNewMsg($modelMsg->theme_id, $modelMsg->text, Yii::app()->user->user_id, $isOperator);
if($res == true){
Yii::app()->user->setFlash('support_newmes', Yii::t('good', 'support_newmes'));
$this->refresh();
}
}else
Yii::app()->user->setFlash('error_valid', true);
}
$this->render('view',array(
'modelMsg'=>$modelMsg,
));
Byrger
(Byrger)
January 16, 2011, 9:49am
4
как то странно, через раз выводится
Причем когда не выводится if(Yii::app()->user->hasFlash('support_newmes)) выдает false
тоесть Yii::app()->user->setFlash(‘support_newmes’, Yii::t(‘good’, ‘support_newmes’)); не срабатывает или удаляется
Byrger
(Byrger)
January 16, 2011, 10:20am
5
Нашел зависимость
У меня в форме есть валидация полей через Ajax с помощью стандартного CActiveForm
Дак вот есть валидация полей проходит и они загораются светлым цветом, то после нажатия кнопки сообщение вылазит, а если валидация не прошла то не вылезет
Не могу понять зависимость между ними
UPD: если отключить аякс валидацию то сообщение выводится нормально
Lion
(Lion__)
January 20, 2011, 5:58am
6
Покажи performAjaxValidation