Бывают такие модули, которые необходимо подключать только в том случае, когда он действительно нужен. Если выполняется цикл, то мы либо что то вписываем и оно появляется везде, либо… да, используем подгрузку файлов при помощи ajax. Итак, как же это делается, сейчас разберем.В моем случае, мне необходимо было подключить карты яндекс, в модуле редактирования заявок
Получается, что если просто подключить скрипт яндекса, то с каждым циклом скрипт обращается к яше, что не является чем то хорошим. Поэтому, я решил подключить ajax. Выглядит это примерно, так:
В тело документа куда мы планируем подключать файл, пишем такой скрипт:
Дальше нужно создать контейнер куда будет вставляться динамический код и непосредственно кнопка для вызова скрипта:
Теперь разберем код скрипта:
$(«#maps_load»).click(function() — событие при котором срабатывает скрипт.
url: «maps.class.php» — подключаемый файл.
$(«#content») — Указание места куда вставлять код из подключаемого файла.
beforeSend: function() {
$(«#content»).html(‘Загрузка…’); — контент который выводится до того, пока не загрузится файл.
success: function(html){
$(«#content»).html(html); — вывод кода из подключенного файла
Думаю тут все понятно. Единственная особенность у меня была, так как этот скрипт у меня работал в цикле, то у меня изначально скрипт отрабатывал только в одной форме, которую я открою первую. Все последующие запускали скрипт, в первом же окне редактирования.
Проблему решил следующим кодом:
Этот код, удалял уже добавленный блок с картой из первого окна.