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>
よろしくお願いいたします。