我有一个包含帖子和评论的页面。我有一个评论按钮,可以打开一个模式窗口并允许发表评论。我可以得到评论保存没问题。我可以让页面更新或模式关闭,但我不能让两者同时发生。我能找到的每个例子都把这个搞砸了 4 个小时。我很感激任何帮助。
这是我的控制器。
public function actionIndex(){
$this->layout='account2';
$feedItems=NewsfeedItem::model()->getFeed('account');
$player=Players::model()->findByPK(Yii::app()->user->id);
$this->render('index', array('player'=>$player, 'feedItems'=>$feedItems));
}
public function actionAddcomment(){
$comment=new NewsfeedComment;
$comment->text=$_POST['comment'];
$comment->players_id=Yii::app()->user->id;
$comment->newsfeed_item_id=$_POST['newsfeeditem'];
$comment->datetime=date('Y-m-d h:i:s');
$comment->save();
$feedItems=NewsfeedItem::model()->getFeed('account');
$this->renderPartial('_newsfeed', array('feedItems'=>$feedItems), false, true);
}
这些是我的视图文件
指数
Welcome, <?php echo $player->firstname;?>
<br />
<br />
<div id='newsfeed'>
<?php $this->renderPartial('_newsfeed', array('feedItems'=>$feedItems)); ?>
</div>
_newsfeed
<?php
foreach($feedItems as $item){
$onclick='$(mydialog' . $item->id . ').dialog("open"); return false;';
echo "<h6>" . $item->getAuthor() . "</h6><br />";
echo '"' . $item->text . '" - ';
echo CHtml::link('Comment', '#', array(
'onclick'=>$onclick,
));
echo '<br />';
$comments=array_slice($item->comments, -5);
foreach($comments as $comment){
echo '<h6>';
echo $comment->text;
echo '</h6><br />';
}
$this->beginWidget('zii.widgets.jui.CJuiDialog',array(
'id'=>"mydialog" . $item->id,
// additional javascript options for the dialog plugin
'options'=>array(
'title'=>'Comment',
'autoOpen'=>false,
),
));
?>
<form method='POST' action='/account/addcomment'>
<textarea name='comment'></textarea>
<input type='hidden' name='newsfeeditem' value='<?php echo $item->id; ?>'>
<?php $closeclick='js:function(){$(mydialog' . $item->id . ').dialog("close");}'; ?>
<div class="row buttons">
<?php echo CHtml::ajaxSubmitButton('Add Comment', '/account/addcomment', array(
'update'='#newsfeed', //REMOVING THIS LINE ALLOWS MODAL TO CLOSE
'success'=>'js:'
.'function(){'
.'$("#mydialog' . $item->id . '").dialog("close");'
.'}',
)); ?>
</div>
</form>
<?php
$this->endWidget('zii.widgets.jui.CJuiDialog');
echo "<br />";
}
?>