2014-02-02 2 views
0

после того, как вы не обновляете страницу после отправки, мой 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

Итак, я получил второе окно формы под первым. И комментарий не сохраняется.

Заранее спасибо за помощь

+0

Вы также можете добавить свой код контроллера? –

+0

Я думаю, что вы обрабатываете данные $ _POST в своем контроллере. Поэтому вы должны упомянуть POST в вашем массиве опций ajax. –

+0

@kumar_v Я только что добавил код контроллера в вопрос – klark

ответ

0

Вы обработки данных POST. Но вы не упомянули в коде.

<?php echo CHtml::ajaxSubmitButton(
     'Save', 
     Yii::app()->createUrl('post/viewComment'), 
     array(
      'type'=>'POST', 
      'dataType'=>'json', 
      'success'=>'js:function(data){ 
        alert("commentSubmitted");}', 
      'error'=>'js:function(data){ 
        alert("comment NOT Submitted");}', 
      ) 
    ); 
?> 
Смежные вопросы