Yii Framework Forum: Ошибка В Аяксе Пагинации - Yii Framework Forum

Jump to content

  • (2 Pages)
  • +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

Ошибка В Аяксе Пагинации то есть, то нет Rate Topic: -----

#1 User is offline   styleroom 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 360
  • Joined: 14-January 12
  • Location:Долгопрудный, Россия

Posted 13 November 2013 - 03:57 AM

всем привет

столкнулся с траблом: когда пагинация формируется на основе CActiveDataProvider то кнопки навигации работают через аякс...
если иначе - без аякса

где рыть решение проблемы?
I'm sorry for my English...
0

#2 User is offline   ineersa 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 285
  • Joined: 15-April 13
  • Location:Ukraine

Posted 13 November 2013 - 04:33 AM

Выложите код cgridview с пагинацией и контроллер.
0

#3 User is offline   styleroom 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 360
  • Joined: 14-January 12
  • Location:Долгопрудный, Россия

Posted 13 November 2013 - 07:22 AM

вот провайдер из контроллера =
$dataProvider=new CArrayDataProvider($this->data_provider, array(
	'keyField'=>'id_page',
	'totalItemCount'=>count($this->data_provider),                
	'pagination'=>array(
		'pageSize'=>2,
	),
));

вот код CListView =
$this->widget('zii.widgets.CListView', array(
	'dataProvider'=>$dataProvider,
        'summaryText'=>'',
        'emptyText' => '',
	'itemView'=>$viewer,
));

что-то еще?

p.s. пагинация работает нормально если генеришь контроллер с помощью gii на основе модели, если собираю вручную не пашет - что-то видимо забываю (или не знаю)
I'm sorry for my English...
0

#4 User is offline   ineersa 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 285
  • Joined: 15-April 13
  • Location:Ukraine

Posted 13 November 2013 - 08:22 AM

Я просто не совсем понимаю в чем загвоздка)

Попробуйте обьявить объект CPagination отдельно.

Что именно происходит при нажатии на ссылку пагинации (должен быть get запрос аяксом)?

Не грузите ли вы часом скрипты несколько раз? Например 1 раз срабатывает и ломается, проверьте это.

Какую версию фреймворка используете? Раньше был баг с пагинацией для CArrayDataProvider с указанным keyfield.
0

#5 User is offline   styleroom 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 360
  • Joined: 14-January 12
  • Location:Долгопрудный, Россия

Posted 13 November 2013 - 08:36 AM

View Postineersa, on 13 November 2013 - 08:22 AM, said:

Я просто не совсем понимаю в чем загвоздка)

Попробуйте обьявить объект CPagination отдельно.

Что именно происходит при нажатии на ссылку пагинации (должен быть get запрос аяксом)?

Не грузите ли вы часом скрипты несколько раз? Например 1 раз срабатывает и ломается, проверьте это.

Какую версию фреймворка используете? Раньше был баг с пагинацией для CArrayDataProvider с указанным keyfield.

фреймворк 1.14
а не может быть проблем из-за правил для УРЛ?
I'm sorry for my English...
0

#6 User is offline   ineersa 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 285
  • Joined: 15-April 13
  • Location:Ukraine

Posted 13 November 2013 - 10:14 AM

View Poststyleroom, on 13 November 2013 - 08:36 AM, said:

фреймворк 1.14
а не может быть проблем из-за правил для УРЛ?

Может если у вас переписываются get параметры. Но тогда скорее всего должна быть ошибка какая то.
0

#7 User is offline   Mihail 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 111
  • Joined: 29-June 13

Posted 13 November 2013 - 10:34 AM

попробуй так

$this->widget('zii.widgets.CListView', array(
        'dataProvider'=>$dataProvider,
        'summaryText'=>'',
        'emptyText' => '',
        'itemView'=>$viewer,
        'ajaxUpdate'=>false, 
));

Быстро ссылки:
Yii - http://www.yiiframework.com/download/
Полное руководство по Yii - http://www.yiiframew...de/1.1/ru/index
Class Reference - http://www.yiiframework.com/doc/api/
Расширения - http://www.yiiframew...com/extensions/
0

#8 User is offline   styleroom 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 360
  • Joined: 14-January 12
  • Location:Долгопрудный, Россия

Posted 14 November 2013 - 01:17 AM

View PostMihail, on 13 November 2013 - 10:34 AM, said:

попробуй так

$this->widget('zii.widgets.CListView', array(
        'dataProvider'=>$dataProvider,
        'summaryText'=>'',
        'emptyText' => '',
        'itemView'=>$viewer,
        'ajaxUpdate'=>false, 
));


попробовал - так открылась страница с УРЛ в котором был ключ page...
естественно была ошибка, так как такой ключ воспринялся как подраздел
I'm sorry for my English...
0

#9 User is offline   styleroom 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 360
  • Joined: 14-January 12
  • Location:Долгопрудный, Россия

Posted 14 November 2013 - 01:20 AM

вот на что обратил внимание =
в контроллере на основе модели, ссылки пагинации имеют такой вид =
...articles.html?Articles_page=3&ajax=yw0
то есть ключ page почему-то Articles_page и есть ключ ajax

а в самопальном контроллере - нету ключа ajax и page так и есть page
и при клике по ссылке в пагинации получаю всплывающее окно с таким текстом =
Error 404: Array
(
    [ajax] => yw0
    [page] => 3
    [sect] => character
)

I'm sorry for my English...
0

#10 User is offline   Mihail 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 111
  • Joined: 29-June 13

Posted 14 November 2013 - 03:06 AM

Я тогда чего то не пойму если вам надо избавиться от аякса то то что я написал вполне подходит но действительно придётся в контролере сделать правки но если не так то тогда как вам надо?
Быстро ссылки:
Yii - http://www.yiiframework.com/download/
Полное руководство по Yii - http://www.yiiframew...de/1.1/ru/index
Class Reference - http://www.yiiframework.com/doc/api/
Расширения - http://www.yiiframew...com/extensions/
0

#11 User is offline   styleroom 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 360
  • Joined: 14-January 12
  • Location:Долгопрудный, Россия

Posted 14 November 2013 - 03:20 AM

View PostMihail, on 14 November 2013 - 03:06 AM, said:

Я тогда чего то не пойму если вам надо избавиться от аякса то то что я написал вполне подходит но действительно придётся в контролере сделать правки но если не так то тогда как вам надо?

не-не-не... мне не надо избавиться от аякса... мне надо, чтобы заработала пагинация
просто я не пойму - почему у меня в самопальном контроллере не работает пагинация
и в качестве примера привел пагинацию контроллера сгенерированного в ГИИ - там одним из параметров запроса является ajax=yw0
I'm sorry for my English...
0

#12 User is offline   Mihail 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 111
  • Joined: 29-June 13

Posted 14 November 2013 - 03:56 AM

для аякс запросов это нормально просто не понятно почему у вас сам запрос не выполняется

закинь сюда контроллер вьюху и чпу
Быстро ссылки:
Yii - http://www.yiiframework.com/download/
Полное руководство по Yii - http://www.yiiframew...de/1.1/ru/index
Class Reference - http://www.yiiframework.com/doc/api/
Расширения - http://www.yiiframew...com/extensions/
0

#13 User is offline   styleroom 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 360
  • Joined: 14-January 12
  • Location:Долгопрудный, Россия

Posted 14 November 2013 - 04:07 AM

View PostMihail, on 14 November 2013 - 03:56 AM, said:

для аякс запросов это нормально просто не понятно почему у вас сам запрос не выполняется

закинь сюда контроллер вьюху и чпу

Прикрепил

Attached File(s)


I'm sorry for my English...
0

#14 User is offline   ineersa 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 285
  • Joined: 15-April 13
  • Location:Ukraine

Posted 14 November 2013 - 05:39 AM

View Poststyleroom, on 14 November 2013 - 04:07 AM, said:

Прикрепил

Проверил у себя, все замечательно работает. Значит вы где то в контроллере перемудрили.
Проблема не в cdetailview, пагинации или carraydataprovider.

Осталось 2 варианта, собственно их и проверьте.

1) Url manager. Уберите все лишнее, посмотрите работает ли.
2) Controller - уберите все оттуда, сделайте обычный action и посмотрите работает ли.

Для этих дел кстати есть gist. Удобнее намного чем качать zip)
1

#15 User is offline   Mihail 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 111
  • Joined: 29-June 13

Posted 14 November 2013 - 05:58 AM

нашёл ошибку

здесь вы перемудрили
$this->arr = $this->actionParams;
$this->keys = implode('', array_keys($this->arr));


при простом запросе всё будет ок но как только начинает работать пагинация начинаются траблы
при простом запросе у меня $this->keys был равен sect
а с пагинацией $this->keys был равен ajaxpagesect

для того чтоб всё заработало мне пришлось изменить условие на такого рода

if($keys == 'sect' || $keys == 'ajaxpagesect' || $keys == 'ajaxsect'){

для того чтоб всё заработало изменитье условие на такие
if(isset($this->actionParams['sect'], $this->actionParams['subsect'], $this->actionParams['art'])){
        	$this->keys = "sectsubsectart";
...
        	
        }elseif(isset($this->actionParams['sect'], $this->actionParams['subsect'])){
        	$this->keys = "sectsubsect";

...
        	
        }elseif(isset($this->actionParams['sect'])){
        	$this->keys = "sect";
...
        	
        }else{
        	throw new CHttpException('404');
        }

Быстро ссылки:
Yii - http://www.yiiframework.com/download/
Полное руководство по Yii - http://www.yiiframew...de/1.1/ru/index
Class Reference - http://www.yiiframework.com/doc/api/
Расширения - http://www.yiiframew...com/extensions/
2

#16 User is offline   styleroom 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 360
  • Joined: 14-January 12
  • Location:Долгопрудный, Россия

Posted 14 November 2013 - 06:29 AM

View PostMihail, on 14 November 2013 - 05:58 AM, said:

нашёл ошибку
здесь вы перемудрили
$this->arr = $this->actionParams;
$this->keys = implode('', array_keys($this->arr));

при простом запросе всё будет ок но как только начинает работать пагинация начинаются траблы
при простом запросе у меня $this->keys был равен sect
а с пагинацией $this->keys был равен ajaxpagesect

РЕСПЕКТИЩЕ!
все заработало!
но я решил использовать такой подход =
if(
	!empty($this->arr['sect']) AND 
	empty($this->arr['subsect']) AND 
	empty($this->arr['art'])
)

фигово, конечно, при каждом запросе вычислять по 3 функции, но с учетом возможного кеширования страницы целиком = это не критично
p.s. со временем что-нить придумаю по оптимальнее!

СПАСИБО ПАРНИ! вы просто монстры какие-то... :D
I'm sorry for my English...
0

#17 User is offline   andy_s 

  • Random Member Title
  • Yii
  • Group: Moderators
  • Posts: 1,526
  • Joined: 22-June 09
  • Location:Russia, Kostroma

Posted 14 November 2013 - 06:55 AM

Можете отблагодарить их плюсиками :)
0

#18 User is offline   styleroom 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 360
  • Joined: 14-January 12
  • Location:Долгопрудный, Россия

Posted 14 November 2013 - 07:11 AM

точно! про плюсики-то я все время забываю!
I'm sorry for my English...
0

#19 User is offline   Mihail 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 111
  • Joined: 29-June 13

Posted 14 November 2013 - 07:27 AM

хе хе :D
Быстро ссылки:
Yii - http://www.yiiframework.com/download/
Полное руководство по Yii - http://www.yiiframew...de/1.1/ru/index
Class Reference - http://www.yiiframework.com/doc/api/
Расширения - http://www.yiiframew...com/extensions/
0

#20 User is offline   styleroom 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 360
  • Joined: 14-January 12
  • Location:Долгопрудный, Россия

Posted 14 November 2013 - 08:12 AM

плюсики дают рейтинг
а чего дает рейтинг?
I'm sorry for my English...
0

Share this topic:


  • (2 Pages)
  • +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users