0

投稿とコメントがあるページがあります。モーダル ウィンドウを開き、コメントを作成できるコメント ボタンがあります。問題なく保存するためのコメントを取得できます。ページを更新したり、モーダルを閉じたりすることはできますが、両方を同時に行うことはできません。私が見つけることができるすべての例で、これを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>

_ニュースフィード

<?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 />";
}
?>
4

1 に答える 1