после того, как вы не обновляете страницу после отправки, мой ajaxSubmitButton не сохраняет данные. Когда я нажимаю на кнопку, она удаляет содержимое полей ввода, но не сохраняет данные. Не отображается сообщение, несмотря на ошибки и параметры успеха.AjaxSubmitButton в структуре Yii не сохраняет
В моей форме представления, код для кнопки отправки следующая
<?php echo CHtml::ajaxSubmitButton(
'Save',
Yii::app()->createUrl('post/viewComment'),
array(
'success'=>'js:function(data){
alert("commentSubmitted");}',
'error'=>'js:function(data){
alert("comment NOT Submitted");}',
)
);
?>
Мой код действия контроллера
public function actionViewComment()
{
$post=$this->loadModel();
$comment=$this->newComment($post);
$this->renderPartial('_viewComment',array(
'model'=>$post,
'comment'=>$comment,
));
вид viewCommment, отобразить вид _view в список замечаний и в конец отображает вид _form, чтобы пользователь вводил новый комментарий.
Функция newComment содержит следующее:
protected function newComment($post)
{
$comment=new Comment;
if(isset($_POST['ajax']) && $_POST['ajax']==='comment-form')
{
echo CActiveForm::validate($comment);
Yii::app()->end();
}
if(isset($_POST['Comment']))
{
$comment->attributes=$_POST['Comment'];
if($post->addComment($comment))
{
if($comment->status==Comment::STATUS_PENDING)
Yii::app()->user->setFlash('commentSubmitted','Thank you for your comment. Your comment will be posted once it is approved.');
$this->refresh();
}
}
return $comment;
}
На самом деле, я использую демо-версию блога из Yii Framework, хотя я был хорошей отправной точкой для изучения Yii Framework.
домашняя страница отображение списка сообщений. (it renderPartial _view.php.)
Я создаю кнопку ajax, чтобы иметь возможность перечислять суммы, связанные с данным сообщением, и отображать форму ввода для нового комментария в нижней части формы.
я добавил вторую кнопку с «классическим представить»
<?php echo CHtml::submitButton($model->isNewRecord ? 'Submit' : 'Save'); ?>
это работает, но перенаправить меня в списке комментариев, это то, что я хотел бы избежать; Использование AjaxsubmitButton. Когда я наводил курсор на классическую кнопку или кнопку Ajax, ссылка такая же ...../blog/index.php/post/viewComment? Id = ...
Дисплей следующие
пост 1
пост 2
comment 1
comment 2
comment 3
Добавить комментарий
Input Field
Кнопка AjaxSubmit
пост 3
и при нажатии на кнопку ajaxsubmit, я следующий
пост 1
пост 2
comment 1
comment 2
comment 3
Добавить комментарий
Input Field
Кнопка AjaxSubmit
Добавить комментарий
Input Field
Кнопка AjaxSubmit
пост 3
Итак, я получил второе окно формы под первым. И комментарий не сохраняется.
Заранее спасибо за помощь
Вы также можете добавить свой код контроллера? –
Я думаю, что вы обрабатываете данные $ _POST в своем контроллере. Поэтому вы должны упомянуть POST в вашем массиве опций ajax. –
@kumar_v Я только что добавил код контроллера в вопрос – klark