Yii框架中的AjaxSubmitButton不保存

时间:2014-02-02 15:43:35

标签: php ajax yii

成功提交后没有刷新页面,我的ajaxSubmitButton不保存数据。当我单击该按钮时,它会删除输入字段的内容,但不保存数据。尽管存在错误和成功参数,但不会显示任何消息。

在我的表单提交中,提交按钮的代码如下

<?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的一个很好的起点。

主页显示帖子列表。 (它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 Button


发布3

当我点击ajaxsubmit按钮时,我有以下

发布1

发布2

 comment 1

 comment 2

 comment 3

添加评论

Input Field

AjaxSubmit Button



添加评论

Input Field

AjaxSubmit Button


发布3

所以我在第一个窗口下方有第二个窗口窗口。评论未保存。

提前感谢您的帮助

1 个答案:

答案 0 :(得分: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");}',  
            )
    ); 
 ?>