<?xml version='1.0' encoding='UTF-8'?>
<rss version='2.0'>
	<channel>
		<title>cotonti.com : Пагинация на AJAX не работает</title>
		<link>https://www.cotonti.com</link>
		<description>Son konu mesajları</description>
		<generator>Cotonti</generator>
		<language>en</language>
		<pubDate>Thu, 14 May 2026 11:10:30 -0000</pubDate>

		<item>
			<title>Kort</title>
			<description><![CDATA[<p>Если я правильно понимаю,то:</p><ol><li>В твоем плагине должна быть аяксовая часть (<code>Hooks=ajax</code>), которая будет импортировать все передаваемые запросом параметры. Если фильтр мудреный, возможно и с <code>urldecode()</code>. Таким образом на каждой странице будет все как надо.</li><li>id на странице всегда один -- непонятно что имелось ввиду.</li><li>Здесь непонятно. По идее, твой плагин должен к параметру <code>d</code> добавлять свои параметры фильтрации. Иногда для таких параметров требуется <code>urlencode()</code>. Прежде всего, это должно работать без аякса. И тогда можно настроить ЧПУ. Для аяксовых дел придется сильно подумать.<br />Но я, опять же сильно, сомневаюсь что при аяксовой паджинации можно (и нужно) мутить ЧПУ и прочие дела. Поисковики в лучшем случае проигнорируют, а в худшем будешь выставлять <code>rel="nofollow"</code> и <code>мета robots noindex</code> и выковыривать из индекса ссылки твоего фильтра. Впрочем, meta robots понадобится для результатов фильтра в любом случае))</li></ol>]]></description>
			<pubDate>Çrş, 18 Şub 2026 09:05:58 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/tr/forums?m=posts&q=9476&d=0#post48624]]></link>
		</item>
		<item>
			<title>prostogorod</title>
			<description><![CDATA[<p>Спасибо, многие вопросы решил, остался главный- формирования url пагинации фильтра. Этот скрипт возвращает фокус внимания пользователя с блока пагинации на обновленный контент. Страница перезагружается и браузер сам плавно "прыгает" наверх, может кому-то пригодится.</p><pre><code class="language-java">$(document).on('ajaxSuccess', function() {
    var container = $('#news-container');
    if (container.length &gt; 0) {
        $('html, body').animate({
            scrollTop: container.offset().top - 20 // 20px запас сверху
        }, 400);
    }
});</code></pre><p> </p><p>Пишу плагин фильтрации и запутался в архитектуре ссылок.</p><p><strong>Логика сейчас:</strong></p><p>1.Данные фильтра летят через AJAX.</p><p>2.Обработчик <code>filter.ajax.php</code> отдает готовый HTML (результаты + пагинация).</p><p>3.JS вставляет это в контейнер: <code>$("#auto-filter-content").html(response.html);</code> в page.list.tpl.</p><p><strong>Вопросы:</strong></p><p><strong>1. URL пагинации:</strong> Как правильно формировать ссылки в пагинации внутри AJAX-ответа? Должны ли они вести на основной листинг (например, <code>/category?d=2</code>) или на обработчик фильтра? Как в таком случае сохранять состояние фильтров при переходе по страницам?</p><p><strong>2. Контейнеры:</strong> Обязательно ли <code>id</code> блока пагинации должен совпадать с <code>id</code> основного контента, если я обновляю всё разом?</p><p><strong>3. Маршрутизация:</strong> Стоит ли перенести логику из отдельного файла на хук <code>standalone</code> (URL типа <code>/filter</code>), чтобы корректно работало ЧПУ и системные переменные Cotonti? Если, да, то желательно с примером. У меня здесь ступор, я не знаю как сделать? Верне не знаю, как на этом хуке обработчик на аякс работал?</p>]]></description>
			<pubDate>Sal, 17 Şub 2026 11:32:42 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/tr/forums?m=posts&q=9476&d=0#post48623]]></link>
		</item>
		<item>
			<title>Kort</title>
			<description><![CDATA[<p>По классам <a target="_blank" href="https://sed.by/kb/php/37" rel="nofollow" rel="nofollow noreferrer noopener">знакомая история</a>. При аякс-запросе если что-то и грузится, то только дефолтное. Я ужа давно выношу кастомную разметку паджинации в отдельный файл <code>theme_name.rc.pagination.php</code>:</p><pre><code class="language-html">&lt;?php

include_once cot_incfile('icons', 'plug', 'resources');

$R['link_pagenav_current']  = '&lt;li class="page-item active"&gt;&lt;a href="https://www.cotonti.com/{$url}" class="page-link {$class}" {$rel}&gt;{$num}&lt;/a&gt;&lt;/li&gt;';

$R['link_pagenav_first']    = '&lt;li class="page-item first"&gt;&lt;a href="https://www.cotonti.com/{$url}" class="page-link {$class}" {$rel}&gt;' . Cot::$R['icon-arrow-left'] . '&lt;/a&gt;&lt;/li&gt;';
$R['link_pagenav_prev']     = '&lt;li class="page-item"&gt;&lt;a href="https://www.cotonti.com/{$url}" class="page-link {$class}" {$rel}&gt;' . Cot::$R['icon-chevron-left'] . '&lt;/a&gt;&lt;/li&gt;';
$R['link_pagenav_main']     = '&lt;li class="page-item"&gt;&lt;a href="https://www.cotonti.com/{$url}" class="page-link {$class}" {$rel}&gt;{$num}&lt;/a&gt;&lt;/li&gt;';
$R['link_pagenav_next']     = '&lt;li class="page-item"&gt;&lt;a href="https://www.cotonti.com/{$url}" class="page-link {$class}" {$rel}&gt;' . Cot::$R['icon-chevron-right'] . '&lt;/a&gt;&lt;/li&gt;';
$R['link_pagenav_last']     = '&lt;li class="page-item last"&gt;&lt;a href="https://www.cotonti.com/{$url}" class="page-link {$class}" {$rel}&gt;' . Cot::$R['icon-arrow-right'] . '&lt;/a&gt;&lt;/li&gt;';

$R['link_pagenav_gap']      = '&lt;li class="page-item disabled"&gt;&lt;span class="page-link"&gt;...&lt;/span&gt;&lt;/li&gt;';</code></pre><p>И гружу его из <code>theme_name.php</code> или из аякс-частей:</p><pre><code class="language-php">require_once cot_incfile($theme, 'theme', 'rc.pagination');</code></pre><p>Это из сниппета выше ^^^. Ну и, при необходимости, библиотеку иконок.</p><p>По кнопке "Последняя": она у меня при аяксовании работает как "Следующая страница". <a target="_blank" href="https://github.com/Cotonti/Cotonti/issues/1878" rel="nofollow" rel="nofollow noreferrer noopener">Тикет</a>.</p><p>По поводу скролла не знаю, надо посмотреть. Но, думаю, решаемо)</p>]]></description>
			<pubDate>Cmt, 14 Şub 2026 07:21:41 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/tr/forums?m=posts&q=9476&d=0#post48621]]></link>
		</item>
		<item>
			<title>prostogorod</title>
			<description><![CDATA[<p>Благадарю за помощь! Уже что-то понятней стало в понимании. Заработала пагинациея аякс на Page.<br />А почему при аякс пропадают классы в пагинации? А при клике на последнию страницу, просходит переход, но сильно скролит вниз. Как с этим бороться?</p>]]></description>
			<pubDate>Cum, 13 Şub 2026 23:34:46 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/tr/forums?m=posts&q=9476&d=0#post48620]]></link>
		</item>
		<item>
			<title>Kort</title>
			<description><![CDATA[<p>Чтобы в ID-wrapper отдавалась не вся страница, а только сами данные, лишнее надо отсечь. Примерно так:</p><pre><code class="language-html">&lt;!-- BEGIN: MAIN --&gt;
&lt;!-- IF !{PHP|ajax_true()} --&gt;
&lt;main id="users" class="mb-4"&gt;
	&lt;div class="container"&gt;
		&lt;div class="row mt-5"&gt;
			&lt;div class="col"&gt;
				&lt;div class="title mb-3 px-2 px-sm-0"&gt;
					&lt;h1 class="lh-1 mb-1"&gt;{PHP.L.Users}&lt;/h1&gt;
					&lt;ul class="breadcrumb mb-0"&gt;
						&lt;li class="breadcrumb-item"&gt;&lt;a href="https://www.cotonti.com/{PHP.cfg.mainurl}" title="{PHP.L.Home}"&gt;{PHP.L.Home}&lt;/a&gt;&lt;/li&gt;
						&lt;li class="breadcrumb-item"&gt;{PHP.L.Users}&lt;/li&gt;
					&lt;/ul&gt;
				&lt;/div&gt;
				&lt;!-- ENDIF --&gt;
				&lt;!-- ЗДЕСЬ ФИЛЬТР И ПАДЖИНАТОР --&gt;
				&lt;!-- IF !{PHP|ajax_true()} --&gt;
			&lt;/div&gt;
		&lt;/div&gt;
	&lt;/div&gt;
&lt;/main&gt;
&lt;!-- ENDIF --&gt;</code></pre><p>Функция простая:</p><pre><code class="language-php">if (!function_exists('ajax_true')) {
	function ajax_true() {
		if (COT_AJAX) {
			$res = true;
		} else {
			$res = false;
		}
		return $res;
	}
}</code></pre><p>Еще раз: в ID-wrapper включай не только паджинатор, но и вывод.</p>]]></description>
			<pubDate>Cum, 13 Şub 2026 20:41:49 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/tr/forums?m=posts&q=9476&d=0#post48619]]></link>
		</item>
		<item>
			<title>prostogorod</title>
			<description><![CDATA[<p>Пока фильтр отключил. Решил только разобраться с аякс пагинацией на Page. Обычная пагинация работает, а вот аякс пагинацией на Page не работает.<br />Я посмотрел в консоль fetch/xhr response. Статус 200. Отдает весь весь html, что в шаблоне, с остатком результата листинга. <br />Так почему не обновляется страница? А также почему весь html всего шаблона, а не кусок id-wrapper отдает?</p>]]></description>
			<pubDate>Cum, 13 Şub 2026 19:33:14 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/tr/forums?m=posts&q=9476&d=0#post48618]]></link>
		</item>
		<item>
			<title>Kort</title>
			<description><![CDATA[<p>Я просто не понял про это:</p><blockquote><p>пагинация на модуле не пропадает, когда появляется результат плагина- фильтра со своей пагинацией</p></blockquote><p>Паджинатор всегда один, а аякс ты подключаешь настройкой. И в id-wrapper нужно брать не только паджинатор, а весь блок.</p><p>И если что-то не работает, смотри ответ в консоли. Обязательно включи отображение ошибок в <code>datas/config.php</code></p><p>Но вообще, сперва надо продебажить эту историю и заставить работать твой паджинатор без аякса.</p><p>У меня в админке в модальном окне выводятся список пользователей и whosonline. Естественно, паджинатор с аяксом. Там все предельно просто:</p><pre><code class="language-php">&lt;?php
/* ====================
[BEGIN_COT_EXT]
Hooks=whosonline.main
[END_COT_EXT]
==================== */

defined('COT_CODE') or die('Wrong URL');

if (ajax_true()) {
  // Это необязательно)))
  require_once cot_incfile('icons', 'plug', 'resources');
  require_once cot_incfile($theme, 'theme', 'rc.pagination');
  // А здесь не ошибешься
  $pagenav = cot_pagenav('whosonline', ['d' =&gt; $durl], $d, $totallines, $maxuserssperpage, 'd', '', true, 'ajaxmodalcont');
}</code></pre><p>Так что проблема скорее всего в самом фильтре (99% на sql-запрос). В консоли все увидишь.</p>]]></description>
			<pubDate>Cum, 13 Şub 2026 16:21:38 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/tr/forums?m=posts&q=9476&d=0#post48617]]></link>
		</item>
		<item>
			<title>prostogorod</title>
			<description><![CDATA[<blockquote class="fp"><p><a href="https://www.cotonti.com/forums?m=posts&amp;q=9476&amp;d=1#48615">#48615</a> <strong>Kort: </strong><br /> </p><p>Вообще, без аякса работает?</p></blockquote><p>Привет! Да, вы правы... Она и без акяса не работает. Вроде все делал по аналогии с модулем Page. Ладно, попробую сначала настроить пагинацию с  акяс на модуле Page. </p><p> </p><blockquote class="fp"><p><a href="https://www.cotonti.com/forums?m=posts&amp;q=9476&amp;d=1#48615">#48615</a> <strong>Kort: </strong><br /> </p><p>Паджинацию не надо дублировать.</p></blockquote><p>А это как понять?. </p><p>....</p><p>Вобщем, не получается настроить даже аякс на Page, делал так:</p><pre><code class="language-php">1. В ресурсах добавил класс для пагинации - ajax

2. Настройка cot_pagenav на листинге:
$pagenav_cat = cot_pagenav(
    'page',
    $list_url_path + ['d' =&gt; $durl],
    $dc,
    count($allsub),
    Cot::$cfg['page']['maxlistsperpage'],
    'dc',                                               
    '',                                                
    true,                                             
    'auto-filter-content',   
);

3. При нажатии на пагинацию - ничего не проиходит.
 url в браузере - acura#get;d=2  
 url в пагинации - &lt;a class="page-link ajax" href="https://www.cotonti.com/acura?d=2"&gt;2&lt;/a&gt;
 
4.   В шаблоне пагинация находитсяв блоке id="auto-filter-content"
    &lt;div class="row" id="auto-filter-content"&gt;      
        &lt;!-- IF {PAGINATION}--&gt;
             &lt;div class="col-12  pt-3 pb-3"&gt;....&lt;/div&gt;					   
        &lt;!-- ENDIF --&gt;	
	&lt;/div&gt;	</code></pre><p> </p><p> </p>]]></description>
			<pubDate>Cum, 13 Şub 2026 14:13:05 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/tr/forums?m=posts&q=9476&d=0#post48616]]></link>
		</item>
		<item>
			<title>Kort</title>
			<description><![CDATA[<p>Привет. Паджинацию не надо дублировать. Вообще, без аякса работает?</p>]]></description>
			<pubDate>Cum, 13 Şub 2026 06:55:00 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/tr/forums?m=posts&q=9476&d=0#post48615]]></link>
		</item>
		<item>
			<title>prostogorod</title>
			<description><![CDATA[<p>Дано: Cotonti 0.9.25 и Плагин фильтр на AJAX - работает, фильтрует по параметрам. Но в нем не работает пагинация на AJAX. Что сделал не так? </p><p>Этот плагин работает на  листинге в модуле Page. И еще вопрос, пагинация на модуле не пропадает, когда появляется результат плагина- фильтра со своей пагинацией. Почему так?</p><pre><code class="language-php">    $autonav = cot_pagenav(
        'plug',                                              // 1. Модуль
        ['e' =&gt; 'filter', 'dc' =&gt; $dcurl] + $list_url_path,  // 2. Параметры URL
        $d,                                                  // 3. Текущее смещение
        $totallines,                                         // 4. Всего записей
        $maxAutoRowsPerAuto,                                 // 5. Записей на страницу
        'd',                                                 // 6. Имя переменной пагинации
        '',                                                  // 7. Якорь (hash)
        true,                                                // 8. Включить AJAX (ajax = true)
        'auto-filter-content',                               // 9. ID блока для обновления (target_div)
    );
    
    $t-&gt;assign(cot_generatePaginationTags($autonav));</code></pre>]]></description>
			<pubDate>Per, 12 Şub 2026 15:22:28 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/tr/forums?m=posts&q=9476&d=0#post48614]]></link>
		</item>
	</channel>
</rss>