胖鸭 2014-04-02 09:21
浏览 24

Yii分页与Ajax

I need to enable pagination with ajax my code Controller(update content ajax)

 function actionIndex(){
        $dataProvider=new CActiveDataProvider('News', array(

            'pagination'=>array(
                'pageSize'=>1,
            ),
        ));
        if (Yii::app()->request->isAjaxRequest) {
            $done =$this->renderPartial('index', array('dataProvider' => $dataProvider), true);
            echo CJSON::encode($done);
            Yii::app()->end();
        }

        $this->render('index', array(
            'dataProvider'=>$dataProvider,
        ));
    }

JS (on click event show renderpartial)

$(document).ready(function(){
    $(".menunews").click(function() {
        $( "body" ).addClass( "news" );
        $.ajax({
            url: 'index.php/news',
            type: "GET",
            dataType: "JSON",
            success: function(data){
                    $('#news').append(data);
                }

        }).fail(function(){
                alert("Error");
            });
    });

view

<div class="newscont">
    <h1>News</h1>


        <?php $this->widget('zii.widgets.CListView', array(
            'dataProvider'=>$dataProvider,
            'itemView'=>'_view',
            'template'=>"{items}
{pager}",
            'ajaxUpdate'=>'true',
            'enablePagination'=>true,
            'pager' => array(
                'firstPageLabel'=>'<<',
                'prevPageLabel'=>'<',
                'nextPageLabel'=>'>',
                'lastPageLabel'=>'>>',
                'maxButtonCount'=>'10',
                'header'=>'<span>Pagination</span>',
                'cssFile'=>Yii::app()->getBaseUrl(true).'/themes/phil/css/pager.css',
            ),
        )); ?>


</div>

But if i load page throw renderpartial using ajax my pagination doesn't work, how i can fix it?

  • 写回答

2条回答 默认 最新

  • weixin_33725722 2014-04-02 11:34
    关注

    In your controller do this

        if (Yii::app()->request->isAjaxRequest) {
                    $done =$this->renderPartial('index', array('dataProvider' => 
    $dataProvider), true);
                    echo $done;
                    Yii::app()->end();
                }
    

    And change your ajax call to this

    $.ajax({
                url: 'index.php/news',
                type: "POST",
                dataType: "html",
                success: function(data){
                        $('#news').html(data);
                    }
    
            })
    
    评论

报告相同问题?

悬赏问题

  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型