Возникла необходимость настроить цели для форм обратной связи в яндекс метрике, для этого необходимо добавить немного кода в теги форм и кнопок на этих формах. Но вот никак не могу разобраться - где же найти этот исходный код форм в админке битрикса?
Переключите страницу где находится ваша форма в режим правки, далее подведите курсор мыши к кнопочке с шестеренкой и щелкните по находящейся рядом с ней стрелочкой, в выпадающем списке выберите название вашей формы и далее Редактировать шаблон компонента. В появившемся окне вы должны будете видеть исходный код вашей формы, в нем можно вносить какие угодно правки.
Если не помогло: Откройте страницу в визуальном редакторе, далее перейдите в Совмещенный режим редактирования, у вас должен отобразиться исходный код страницы, в нем можно вносить какие угодно правки.
Если и это не помогло: Раскройте структуру сайта и перейдите в раздел файлы и папки, далее в структуре найдите вашу страницу с формой и откройте ее для правки, у вас должен отобразиться исходный код страницы, в нем можно вносить какие угодно правки.
Страницы реализованы через объекты, в них только подключаются формы, но нет ни намека на сам код. В файлах и папках пыталась найти шаблон форм, но безрезультатно слишком много папок и файлов, я даже не знаю где именно они лежат и как называются. Форм всего 3, и они как-то заумно подтягиваются через объекты ко всем страницам любого раздела. Я уже все вышеуказанное перепробовала, просто опускаются руки.(
Не надо опускать руки, только тогда можно достигнуть цели.
Я вас понял, вы наверное хотите сказать что вас пугает вот такая запись
Код
<?=$arResult["FORM_HEADER"]?>
при формировании самой веб-формы.
Дело в том, что вы установили переключатель ШАБЛОНА ФОРМЫ в положение Использовать шаблон формы по умолчанию, поэтому система создает форму опираясь на default`ный шаблон, а править стандартные компоненты или шаблоны и т.д. я не рекомендую.
Так как же все таки добавить событие onsubmit на существующую форму обратной связи? и событие onclick на кнопку этой формы? Желательно наиболее простой, но действующий способ.
а разве с помощью javascript или jQuery это сложно сделать.
Если все делается в дефаултном шаблоне можете в header.php используемого шаблона сайта поставить скрипт. Вот только он будет вызываться на всех страницах, но это ваш выбор раз вы не желаете создать копию шаблона компонента и поправить вывод в нем.
Дело в том что форм 3. Необходимо фиксировать открытие каждой отдельно. Кроме того, нужно фиксировать нажатие на кнопочку отправить, что бы отличать простое открытие формы от действительно заполненной и отправленной на почту. Если вы знаете какой скрипт мне может помочь в таких целях, подскажите пожалуйста. Формы подтягиваются на все страницы сайта, так что "он будет вызываться на всех страницах" это только в плюс.
Проблема в незнании синтаксиса javascript или jQuery, а также в том что у форм нет явных ссылок, они вызываются прямо на странице, где размещены и адрес в браузере при этом не меняется.
Помогите пожалуйста написать подходящий javascript, что бы отследить открытие каждой из 3 форм отдельно(по ссылке не получиться, может быть можно с помощью идентификаторов отличать их), и отдельно для отправки форм(нажатие на кнопку как вариант). В помощи яндекс метрки приводиться такой пример:
В этом случае мы бессильны помочь, помощь подразумевает два варианта, 1 вам подсказывают направление, второй вариант поправляют код если вы в чем то ошиблись, но код уже должен быть написан и человек должен обладать хотя бы базовыми знаниями.
А писать ха кого то весь код ну это не реально. Да и нету столько лишнего времени
Андрей Гаврилов пишет: В этом случае мы бессильны помочь, помощь подразумевает два варианта, 1 вам подсказывают направление, второй вариант поправляют код если вы в чем то ошиблись, но код уже должен быть написан и человек должен обладать хотя бы базовыми знаниями.
А писать ха кого то весь код ну это не реально. Да и нету столько лишнего времени
Я не прошу писать за меня весь код, просто тот вариант что вы предложили он не подходит, так как у форм нет явных ссылок, они вызываются прямо на странице. Я не думаю что повесить 2 события на форму и кнопку это занимает так много времени. В любом случае спасибо что откликнулись.
Артём Губанов пишет: Вера, я вам помогу! Дайте ссылку на ваши формы.
Артем спасибо вам огромное! Но у форм, как я уже писала, нет конкретной ссылки. Они вызываются прямо на странице и адрес не меняется. А дать ссылку на сайт я не могу к сожалению.
Я написал вам механизм, которому пофигу есть ли у форм конкретная ссылка или нет. Механизм вешает на все формы механизм отслеживания события submit то есть отправки данных и получает возможность работать именно с той формой в которой произошло событие.
Изучайте javscript и html ибо с данными что вы даете вообще не написать ничего. ссылку я не могу дать но вы мне напишите код. Советую тогда нанять программиста, который вам все сделает. Ибо вероятность что Вы что то сделаете сами равна нулю.
Андрей спасибо, что потратили так много времени на ответы мне, спасибо за ваш "оптимизм", но вы совершенно не вникли в суть вопроса судя по вашим комментариями, но уже поспешили с выводами касательно моих познаний и умственных возможностей.
Вера! Вот здесь я сделал пример с вашей формой - это JsFiddle.net - "песочница" для веб-разработки. Как и говорил Андрей Гаврилов, можно воспользоваться решением проблемы на стороне клиента, и так, jQuery это библиотека JavaScript, с помощью ее методов можно обрабатывать различные события. Для событий связанных с событиями формы существуют следующие методы.
.submit() - устанавливает обработчик отправки формы на сервер, либо запускает это событие.
Вы можете выполнять любые манипуляции с формой, в том числе вы можете добавить любой атрибут для вашей формы. Попробуйте это сделать в моем примере. Для того чтобы добавлять атрибуты существуют специальные методы. Код примерно должен выглядеть вот так:
Код
$('#yourFORM').submit(function(){
alert('Ваша форма yourFORM не отправлена на сервер.');
$('#yourFORM').attr("class", "yourFORMClass"); // добавим новый атрибут для формы
return false;
});
Да нету за что Главное, чтобы это приносило пользу.
Да, я просто не знаю ваш уровень знаний, хочу еще дополнить ответ, для того, чтобы функциональность библиотеки jQuery стала доступной на страницах вашего сайта, необходимо скачать файл с библиотекой на официальном сайте jquery (ссылка с текстом "Download the compressed, production jQuery", чтобы скачать библиотеку, необходимо кликнуть по ссылке правой клавишей мыши и выбрать "Сохранить ссылку как.." . Полученный файл нужно будет загрузить на сервер, где лежит ваш сайт, и подключить этот js-файл на страницы сайта:
$('#yourFORM').submit(function(){
alert('Ваша форма yourFORM не отправлена на сервер.');
$('#yourFORM').attr("class", "yourFORMClass"); // добавим новый атрибут для формы
return false;
});
return false; приведет к несрабатыванию формы учтите это. А скорее всего нужно просто добавить атрибуты. Правда мне вообще не понятно почему нельзя найти эти формы в коде который формируется. наверняка там весит вызов компонента у которого есть шаблон и можно напрямую в html нужные атрибуты.
Человеку не хватает знаний работы с битриксом, поэтому стоит почитать например про то как устроен компонент и где посмотреть шаблон данных форм
return false; приведет к несрабатыванию формы учтите это.
... к чему этот комментарий?
return false; приведет к несрабатыванию формы - ЭТО ЖЕ ОЧЕВИДНО!!!! Естественно! Я для этого и добавил этот оператор в примере, чтобы отправка данных формы не сработала. А куда по вашему мнению она должна была отправить данные ))) идея заключалась в том, чтобы сообщить пользователю форума как работать с атрибутами.
Какое отношение имеет ссылка на руководство в раздел по компонентам.