Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Конфликт AJAX

00 голосов
8
Подгружаю с помощью AJAX компонент с включенным AJAX_MODE=Y, но после загрузки этого компонента никакого AJAX'а в нем нет, ссылки для постраничной навигации выводятся обычным способом, где может быть проблема?
спросил 14 Янв, 13 от CCCPKinG (440 баллов)

8 Ответы

00 голосов
никто не знает как заново запустить обработчик?
ответил 14 Янв, 13 от CCCPKinG (440 баллов)
00 голосов
Разобрался...

В ajax'овом файле должно быть обязательно:

Код
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->RestartBuffer();
ответил 15 Янв, 13 от CCCPKinG (440 баллов)
00 голосов
Но возникла другая проблема... навигация формируется относительно вызова скрипта AJAX, т.е. не
/catalog/index.php?PAGEN_1=2 и т.п.,
а /ajax/index.php?PAGEN_1=2.

Посмотрел, навигация формируется при помощи функции:
Код
GetPagePath(false, false);


Которая делает такую проверку:
Код
if($page===false && $_SERVER["REQUEST_URI"]<>"")
      $page = $_SERVER["REQUEST_URI"];
   if($page===false)
      $page = $_SERVER["SCRIPT_NAME"];


Но если присвоить
Код
$_SERVER["REQUEST_URI"]="/catalog/index.php";


то пропадает AJAX навигация

Кто что может подсказать?
ответил 19 Март, 13 от CCCPKinG (440 баллов)
00 голосов
Разобрался...

идет жесткая привязка к URL

т.е. если URL /catalog/index.php, то и $_SERVER["REQUEST_URI"]="/catalog/index.php";
если просто /catalog/, то $_SERVER["REQUEST_URI"]="/catalog/";
ответил 15 Июль, 13 от CCCPKinG (440 баллов)
00 голосов
Мда... все-равно не работает, при измении $_SERVER["REQUEST_URI"] AJAX-код исчезает
ответил 20 Окт, 13 от CCCPKinG (440 баллов)
00 голосов
up
никто не подскажет?
ответил 23 Янв, 14 от CCCPKinG (440 баллов)
00 голосов
up :)
ответил 12 Май, 14 от CCCPKinG (440 баллов)
00 голосов
Решил проблему...
Походу я её так же в прошлом году решил:
сделал подгрузку через ajax нужной страницы с компонентом (а не сторонней, которая уже вызывала этот компонент), убирая ненужное с помощью
Код
$APPLICATION->RestartBuffer();
и
Код
exit;
ответил 08 Сен, 14 от CCCPKinG (440 баллов)

Похожие вопросы

0 голосов
1 ответ
+1 голос
7 ответов
спросил 25 Май, 13 от RoMZeS1k (330 баллов)
0 голосов
0 ответов
+1 голос
1 ответ