也许我的问题有点棘手,但我看不出问题的来源。
在我的行动索引中,
我选择所关联用户的所有帖子和相关评论
$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,
));
?>
我的问题是:为什么我会在创作后放松上下文?
你有什么想法吗?
感谢您的帮助。