CStarRating在更新时显示广播组而不是星号?

时间:2015-07-20 10:37:32

标签: ajax yii

我已将评论模块从tutorial编辑到审核模块。 在这个模块中我使用CStarRating小部件。查看,提交,删除率后发布即可。但当我点击编辑/更新,编辑旧帖子并点击更新编辑率帖子然后明星不显示,而不是这个广播组???

这是代码:

CommentList.php

 <?php

/** @var CArrayDataProvider $comments */
$comments = $model->getCommentDataProvider();
$comments->setPagination(false);

$this->widget('zii.widgets.CListView', array(
    'dataProvider'=>$comments,
    'itemView'=>'comment.views.comment._view'
));

$this->renderPartial('comment.views.comment._form', array(
    'comment'=>$model->commentInstance
));

_view.php

<?php

?>



<nav id = "atext" >

        <div>

        <span class="ext-comment-head">

                wrote on 
                <span class="ext-comment-date">
                        <?php echo Yii::app()->format->formatDateTime(
                                is_numeric($data->createDate) ? $data->createDate : strtotime($data->createDate)
                        ); 
                        ?>
                </span>
                </span>
                <span class="ext-comment-options">
                <?php if (!Yii::app()->user->isGuest && (Yii::app()->user->id == $data->userId)) {
                    echo CHtml::ajaxLink('delete', array('/comment/comment/delete', 'id'=>$data->id), array(
                                'success'=>'function(){ $("#ext-comment-'.$data->id.'").remove(); }',
                            'type'=>'POST',
                    ), array(
                            'id'=>'delete-comment-'.$data->id,
                            'confirm'=>'Are you sure you want to delete this item?',
                    ));
                        echo " | ";
                        echo CHtml::ajaxLink('edit', array('/comment/comment/update', 'id'=>$data->id), array(
                                'replace'=>'#ext-comment-'.$data->id,
                                'type'=>'GET',
                        ), array(
                                'id'=>'ext-comment-edit-'.$data->id,
                        ));
                } ?>
                </span>

        <p id = "apa">
                        <br>

                </p>
                <table id = "atable">
                        <td id = "test123">
                                <?php
                                $model=new Comment;
                                $a=$data->id;
                                $colArr=$model->attributes;             
                            for ($i = 0; $i <  count($colArr); $i++) {


                                    $key=key($colArr);

                                    $val=$colArr[$key];
                                        next($colArr);
                                if (($key<> 'average') and($key<>'id') and ($key<>'message') 
                                        and ($key<>'userId') and ($key<>'createDate') ) {
                                        $a=$a+100;
                                        echo $data->getAttributeLabel($key).' ('.$data->$key.')';
                                        $this->widget('CStarRating',array(
                                            'name'=>'Comment['.$a.']',
                                            'value'=>$data->$key,
                                            'minRating'=>1, //minimal value
                                                'maxRating'=>5,//max value
                                                'starCount'=>5, //number of stars
                                            'readOnly'=>true,
                                        ));       

                                                }
                                     echo "<br>";

                            }
                                ?>
                        </td>
                        <td  id = "average-teacher">
                                                <p>

                                                        <?php echo nl2br(CHtml::encode($data->message)); ?>
                                                </p>
                        </td>
                </table>

        <br style="clear: both;"/>
</div>


</nav>
</div>

_form.php这个

<br>
<br>    
<?php if (Yii::app()->user->isGuest) {
?><div class="ext-comment-not-loggedin">
        Sorry, you have to login to leave a comment.
</div><?php } else { ?>
<div id="ext-comment-form-<?php echo $comment->isNewRecord ? 'new' : 'edit-'.$comment->id; ?>" class="form" >
<nav id = "comment-a">
<?php $form = $this->beginWidget('CActiveForm', array(
        'id'=>'ext-comment-form',
    'action'=>array('/comment/comment/create'),
        'enableAjaxValidation'=>false
)); ?>

        <?php /** @var CActiveForm $form */
        echo $form->errorSummary($comment); ?>

        <div class="row">
                <?php echo $form->labelEx($comment,'message'); ?>
                <?php echo $form->textArea($comment,'message',array('rows'=>3, 'cols'=>76)); ?>

                <?php echo $form->error($comment,'message'); ?>
        </div>

         <?php 


                $model=new Comment;

        $colArr=$model->attributes;


    for ($i = 0; $i < count($colArr); $i++) {


            $key=key($colArr);


        if (($key<> 'average') and ($key<>'id') and ($key<>'message') and ($key<>'userId')
         and ($key<>'createDate') ){

             $this->widget('CStarRating',array(
                                        'name'=>'Comment['.$key.']',
                                        'value'=>$model->$key,
                                        'minRating'=>1, //minimal value
                                        'maxRating'=>5,//max value
                                        'starCount'=>5, //number of stars
                                        ));

                        echo "&nbsp;&nbsp;&nbsp;".$model->getAttributeLabel($key)."<br>";
                     echo "<br>";}


             next($colArr);

         }


         ?>

<div class="row buttons">


           <?php if ($comment->isNewRecord) {
                echo "<br>";
                        echo $form->hiddenField($comment, 'type');
                        echo $form->hiddenField($comment, 'key');



                        echo CHtml::ajaxSubmitButton('Submit',
                array('/comment/comment/create'),
                        array(
                    'replace'=>'#ext-comment-form-new',
                    'error'=>"function(){
                        $('#Comment_message').css('border-color', 'red');
                        $('#Comment_message').css('background-color', '#fcc');
                    }"
                        ),
                        array('id'=>'ext-comment-submit' . (isset($ajaxId) ? $ajaxId : ''))
                    );
                } else {
                        echo CHtml::ajaxSubmitButton('Update',
                                array('/comment/comment/update', 'id'=>$comment->id),
                                array(
                                        'replace'=>'#ext-comment-form-edit-'.$comment->id,
                                        'error'=>"function(){
                                                $('#Comment_message').css('border-color', 'red');
                                                $('#Comment_message').css('background-color', '#fcc');
                                        }"
                        ),
                        array('id'=>'ext-comment-submit' . (isset($ajaxId) ? $ajaxId : ''))
                );
                }
                echo "<br>";
                ?>

        </div>

<?php $this->endWidget() ?>
</nav>
</div><!-- form -->
<?php } ?>

希望有人可以帮助我:(抱歉我的英语:(

0 个答案:

没有答案