0

Ajax と ClistView の使用に問題があります。

私には 2 つの投稿があり、それぞれにコメントがあり、最初の投稿には 3 つのコメントがあり、2 つ目の投稿には 1 つのコメントがあります。

ポストA

コメントへのリンク(3)

ポストB

コメントへのリンク(1)

Link to Comments(3) をクリックすると、予想どおり、次のようになりました。

ポストA

コメント 1

コメント 2

コメント 3

ポストB

コメントへのリンク(1)

しかし、コメント(1)をクリックすると、

ポストA

投稿 B のコメント 1

ポストB

したがって、投稿 B のコメントは投稿 A の下に表示されます。

どうすれば問題を解決できますか?

Ajax リンクのコードは次のとおりです。

<?php           

            echo CHtml::ajaxLink(
            'Test request', 
            array($url_replace),
            array(
            'update'=>'#req_res_loading',
            'beforeSend' => 'function() {           
            $("#maindiv").addClass("loading");
            }',
            'complete' => 'function() {
                $("#maindiv").removeClass("loading");
            }',        
            )
            );
        echo '<div id="req_res_loading">...</div>';

        ?>

コメントは Clistview コマンドを介して呼び出されます

<?php $this->widget('zii.widgets.CListView', array(
    'dataProvider'=>$dataProvider,
    'itemView'=>'_comment',
    'template'=>"{items}\n{pager}",
)); ?>

私の _comments ビューには以下が含まれます

<?php $this->widget('zii.widgets.CListView', array(
    'dataProvider'=>$dataProvider,
    'itemView'=>'_comment',
    'template'=>"{items}\n{pager}",
)); ?>

私の_commentビューには次が含まれています

<div class="comment">


    <div class="content">
        <?php
            $this->beginWidget('CMarkdown', array('purifyOutput'=>true));
            echo $data->content;
            $this->endWidget();
        ?>
    </div>

</div>

投稿ビューは、このコードでrenderPartialです

<div class="post">
    <div class="title">
        <?php echo CHtml::link(CHtml::encode($data->title), $data->url); ?>
    </div>
    <div class="author">
        posted by <?php echo $data->author->username . ' on ' . date('F j, Y',$data->create_time); ?>
    </div>
    <div class="content">
        <?php
            $this->beginWidget('CMarkdown', array('purifyOutput'=>true));
            echo $data->content;
            $this->endWidget();
        ?>

    </div>

よろしくお願いいたします。

4

0 に答える 0