Javascript 用ajax实现Yii分页

Javascript 用ajax实现Yii分页,javascript,php,jquery,ajax,yii,Javascript,Php,Jquery,Ajax,Yii,我需要使用ajax启用分页 我的代码 控制器(更新内容ajax) JS(点击事件显示渲染部分) 看法 新闻 但是,如果我使用ajax加载page throw renderpartial,我的分页不起作用,我如何修复它呢?在您的控制器中执行此操作 if (Yii::app()->request->isAjaxRequest) { $done =$this->renderPartial('index', array('dataProvid

我需要使用ajax启用分页 我的代码 控制器(更新内容ajax)

JS(点击事件显示渲染部分)

看法


新闻

但是,如果我使用ajax加载page throw renderpartial,我的分页不起作用,我如何修复它呢?

在您的控制器中执行此操作

    if (Yii::app()->request->isAjaxRequest) {
                $done =$this->renderPartial('index', array('dataProvider' => 
$dataProvider), true);
                echo $done;
                Yii::app()->end();
            }
并将您的ajax调用更改为

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

        })
也是正确的,但第二种方法是您可以这样使用:

if (Yii::app()->request->isAjaxRequest) {
      $done =$this->renderPartial('index', array('dataProvider' => $dataProvider), true);
      echo CJSON::encode(array(
                'status' => 'success',
                'html' => $done,
           ));
      Yii::app()->end();
}
$.ajax({
      url: 'index.php/news',
      type: "GET",
      dataType: "JSON",
      success: function(data){
          $('#news').append(data.html);
      }
});

这是从服务器获取
JSON
的正确方法,或者您想要获取
HTML
响应,请使用@让我看看的答案

我不完全确定,但我认为您不应该返回JSON,只要HTML和ListView就可以恢复,如果您自己做整个事情的话。。忘记ajaxUpdate函数,处理整个请求。我认为这两种方法都可以,如果您想使用listview的自动分页,或者让整个分页都由您自己完成,那么您必须删除。谢谢您的回复,但是我如何返回html呢?我认为这是不正确的,现在我正在尝试将CListView js更改为更新页面,但它不起作用。当您忽略JSON::encode时,您可以简单地返回HTML。在脚本数据类型中设置:HTMLthis正是我建议的
    if (Yii::app()->request->isAjaxRequest) {
                $done =$this->renderPartial('index', array('dataProvider' => 
$dataProvider), true);
                echo $done;
                Yii::app()->end();
            }
$.ajax({
            url: 'index.php/news',
            type: "POST",
            dataType: "html",
            success: function(data){
                    $('#news').html(data);
                }

        })
if (Yii::app()->request->isAjaxRequest) {
      $done =$this->renderPartial('index', array('dataProvider' => $dataProvider), true);
      echo CJSON::encode(array(
                'status' => 'success',
                'html' => $done,
           ));
      Yii::app()->end();
}
$.ajax({
      url: 'index.php/news',
      type: "GET",
      dataType: "JSON",
      success: function(data){
          $('#news').append(data.html);
      }
});