ajax.php в компонентах битрикс
Всем добрый день!
Помогите пожалуйста. Перехожу на написание компонентов на D7, пробую писать компоненты, используя class.php вместо component.php
Видел у где-то, что в папке компонента, где лежит class.php - там же лежит и файл ajax.php Поискал документацию - для чего этот файл вообще нужен, нашёл только вот это: ссылка
Но так и не понял, для чего этот файл вообще нужен, если вся логика работы компонента всё равно пишется в class.php ? Можете кто-нибудь своими словами рассказать, для чего этот файл вообще в компоненте нужен, и как его правильно писать, или дать ссылку, где бы подробно было это написано?
Потому что до сих пор все AJAX-запросы я делал используя JS, а именно jQuery и встроенный в него метода $.ajax. Этому методу передавал путь до php-файла, в котором бы запрос обрабатывался, а результат отдавался в метод success или error AJAX-запроса.
Сейчас например пишу кастомный компонент отправки формы на email. Нужно валидировать поля. Можно это сделать, только лишь используя файл ajax.php, без использования JS/ jQuery ?
Помогите пожалуйста.
Ответы (1 шт):
Файл ajax.php нужен только в том случае, если вы организуете работу с компонентом как с контроллером. В этом случае можно явно выделить все методы контроллера в файл ajax.php. Но можно этого не делать, оставляя их в файле class.php.
Уроки по контроллерам: https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&CHAPTER_ID=03750&LESSON_PATH=3913.3516.5062.3750
Отправка запросов контроллеру осуществляется методом BX.ajax.runComponentAction. Не забудьте подцепить эту библиотеку в шапке шаблона: CJSCore::Init('ajax');