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

Bitrix и AJAX

00 голосов
7
Как же все таки добавлять свой AJAX-функционал в стандартные компоненты битрикса?

Например простейшая задача.
Есть компонент регистрации нового пользователя, в нем два поля - логин и пароль.
Как на аяксе проверить свободен или занят веденный пользователем логин?

Или например ajax загрузка файлов на сервер. Я временно сделал через свой скрипт-обработчик, который после сохранения файла посылает обратно путь к нему. Но это не дело вообще говоря.

Как посылать запрос, куда, какому скрипту.
Хотя бы в общих чертах, как кто делает.
спросил 29 Авг, 13 от Juliette (320 баллов)

7 Ответы

00 голосов
Нашел интересный документ - http://dev.1c-bitrix.ru/download/files/manuals/ru/ajax_guide.doc

Попробовал поэкспериментировать с таким кодом:
Код
<a class="news-more-link" href="/news/news.php?ID=104" onclick="jsAjaxUtil.InsertDataToNode('/news/news.php?ID=104&ajax=Y', 'news_body_104', true); return false;">подробнее...</a>
<div id="news_body_104" class="news-body">текст новости откроется здесь</div>


Все нормально, но в качестве результата приходит не только текст новости, а целиком вся страница, от <html> до </html>.
Т.е. визуально получается страница в странице.
ответил 29 Авг, 13 от Juliette (320 баллов)
00 голосов
Ну да, а как еще должно быть? Нужно, чтобы страница "понимала", что ее спрашивает аякс и возвращать только то, что нужно. Например:
Код
//тут include header.php

if($_REQUEST['ajax']=='Y')
   $APPLICATION->RestartBuffer();

//тут компонент вывода новости

if($_REQUEST['ajax']=='Y')
   die();

//тут include footer.php


Если аякс работает в режиме компонента, то продукт сам делает эти действия.
ответил 15 Ноя, 13 от Ixie (540 баллов)
00 голосов
Ага, спасибо, $APPLICATION->RestartBuffer(); помог. Вставил в шаблон.

Кстати, не смог найти описания этой функции в хелпе.
ответил 24 Фев, 14 от Juliette (320 баллов)
00 голосов
Vadim Dumbravanu, СПАСИБО, я тоже не знал что делать с двойным заголовком
ответил 15 Июнь, 14 от Argay (100 баллов)
00 голосов
Подскажите, есть такая задача...

серфинг по сайту сделать на основе AJAX'а, т.е. чтобы шапка и подвал оставались всегда одни и те же, а содержимое сайта (рабочая область) менялся без перезагрузки, т.е. например если на странице ссылка История, то при нажатии на неё в рабочую область подгружалась страница /history/about/

Так вот вопрос, нужно ли каждую ссылку обрабатывать вручную для вставки функций jsAjaxUtil.InsertDataToNode или Битрикс может сделать это на автомате?
ответил 14 Окт, 14 от CCCPKinG (440 баллов)
00 голосов
Цитата
Nevil пишет:
Так вот вопрос, нужно ли каждую ссылку обрабатывать вручную для вставки функций jsAjaxUtil.InsertDataToNode или Битрикс может сделать это на автомате?



Чуть выше, вам уже ответили на этот вопрос


Цитата
Vadim Dumbravanu пишет:
Ну да, а как еще должно быть? Нужно, чтобы страница "понимала", что ее спрашивает аякс и возвращать только то, что нужно. Например:

Код

//тут include header.php



if($_REQUEST['ajax']=='Y')

&nbsp;&nbsp;&nbsp;$APPLICATION->RestartBuffer();



//тут компонент вывода новости



if($_REQUEST['ajax']=='Y')

&nbsp;&nbsp;&nbsp;die();



//тут include footer.php





Если аякс работает в режиме компонента, то продукт сам делает эти действия.
ответил 14 Фев, 15 от Lekar (2,220 баллов)
00 голосов
Т.е. нужно писать компонент, чтобы он отображал содержимое статических страниц?
ответил 26 Май, 15 от CCCPKinG (440 баллов)

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

0 голосов
6 ответов
спросил 01 Окт, 13 от xxTJxx (120 баллов)
0 голосов
4 ответов
спросил 03 Фев, 14 от Jaden (260 баллов)
0 голосов
2 ответов
0 голосов
3 ответов
спросил 17 Дек, 13 от Kleem (100 баллов)
0 голосов
2 ответов
спросил 21 Окт, 13 от Doguu (120 баллов)