创建后没有刷新的Yii删除不起作用

时间:2014-03-14 06:23:32

标签: php jquery ajax yii

也许我的问题有点棘手,但我看不出问题的来源。

在我的行动索引中,

我选择所关联用户的所有帖子和相关评论

$sql = 'SELECT  p.id, p.subject, p.user_id, c.user_id c_user_id,
                        c.id c_id
                FROM post p
                LEFT JOIN comment c ON p.id = o.post_id 
                AND o.user_id=:user_id
                LIMIT 0 , 10 ';

索引视图然后列出所有帖子。 对于已连接用户有评论的帖子 按钮'取消评论'出现。 对于已连接用户没有评论的帖子, 按钮'创建评论'出现。

从显示的角度看,它的工作正常。

当用户点击'创建评论'时,我运行带有ajax的jquery脚本以便继续 同一页。

在我的帖子索引视图中,我调用了comment / delete操作(正如我在创建注释时所做的那样,调用 评论/创建行动)

当我点击按钮cancelComment时,我运行以下jquery脚本

$("#cancelComment<?php echo $data['id']; ?>").click(function(e) {

                   var $this = $(this);
                $.ajax({
                    type: "POST",
                    url: "<?php echo Yii::app()->createUrl('comment/delete', array('id' => 
                            $comment_id, 'user_id'=> Yii::app()->user->id)); ?>",
                    success: function(data) {
                       }
                });
            });
    });
});

在我的控制器意见/删除中我做了以下

public function actionDelete($id, $user_id)
    {
        $model=$this->loadmodel($id);

        if ($model->user_id == Yii::app()->user->id){

        $this->loadModel($id)->delete();

        // if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
        if(!isset($_GET['ajax']))
            $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
        }
    }

创建脚本如下

$("#createComment<?php echo $data['id']; ?>").click(function(e) {
  var $this = $(this);
  $.ajax({
  type: "POST",
  url: "<?php echo Yii::app()->createUrl('comment/create', array('post_id' =>  $data['id'])); ?>",
  success: function(data) {
           $this.after(data);
           $(".form").slideDown(2000);
}

当用户点击&#39;创建评论&#39; ,它工作正常,评论被创建 页面没有刷新,因为我想留在同一页面上。 如果用户想要在创建后立即删除注释,则会失败

发送的网址是

localhost/mysite/index.php/comment/delete/?user_id=18

这不好,因为它错过了comment_id。 在我看来,背景不是好的?

如果我刷新页面,(所以获取所有帖子和取消按钮相关的帖子)

当我点击取消按钮时,它会起作用,因为Url是以下内容:

localhost/mysite/index.php/comment/delete/17?user_id=18

已添加我的创建操作评论/创建包含以下内容 public function actionCreate($ post_id)

{
        $model=new Comment;
        $model->post_id = $post_id;

        // Uncomment the following line if AJAX validation is needed
        $this->performAjaxValidation($model);

        if(isset($_POST['Comment']))
        {
            $model->attributes=$_POST['Comment'];

            if($model->save()) {
                $this->redirect(Yii::app()->request->urlReferrer);

            } else {

                $this->render('create',array(
                    'model'=>$model, 
                    'post_id' => $post_id,
                )); 
            }
        }

        $this->render('create',array(
                    'model'=>$model, 
                    'post_id' => $post_id,
        ));
    }

* 添加了创建评论视图

<?php

$this->breadcrumbs=array(
    'Comment'=>array('index'),
    'Create',
);
?>

<?php $this->renderPartial('_form', array(
    'model'=>$model, 
    'post_id' =>$post_id,
    )); 
?> 

我的问题是:为什么我会在创作后放松上下文?

你有什么想法吗?

感谢您的帮助。

0 个答案:

没有答案