Intereting Posts
Обеспечение доступа веб-приложений с одного компьютера на каждого пользователя ограничение количества циклов, выполняемых в php Выбор миниатюры с внешней ссылки Как выполнить поиск на моем веб-сайте Пользовательская аутентификация Lumen без Eloquent Почему бы не использовать встроенных пользователей MySQL и разрешения для веб-сайта? Как связать функции вызова, используя строку, содержащую эту цепочку в PHP Как читать файл с другого FTP-хоста без использования пропускной способности хоста Задача wordpress cron Текст обрезки до 340 символов Если PHP mt_rand () использует более быстрый алгоритм, чем rand (), почему бы просто не изменить rand () для использования более новой реализации? PHPMyAdmin / MySql – добавление поля идентификатора и идентификаторов автопопуляции Laravel принадлежит к бросанию неопределенной ошибки Объекты PDO в классах TCPDF HTML со специальными символами отображает пустой файл PDF

Yii разбиение на страницы с помощью ajax

Мне нужно включить разбиение на страницы с помощью ajax моего контроллера кода (обновить содержимое 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 (при щелчке события 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"); }); }); 

Посмотреть

 <div class="newscont"> <h1>News</h1> <?php $this->widget('zii.widgets.CListView', array( 'dataProvider'=>$dataProvider, 'itemView'=>'_view', 'template'=>"{items}\n{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> 

Но если я загружаю бросок страницы renderpartial, используя ajax, моя разбивка на страницы не работает, как я могу это исправить?

В контроллере сделайте это

  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); } }); 

Это правильный способ получить JSON с сервера, или вы хотите использовать HTML ответ, используя @Let me, см. Ответ