Как автоматом вставить значение в поле из фрейма для битрикс24

Обсуждение вопросов клиентского программирования.

Модератор:Duncon

Ответить
alcomp
Сообщения:1
Зарегистрирован:09 ноя 2016, 21:56

09 ноя 2016, 22:01

Добрый день, ув. специалисты!

Сразу хочу предупредить - я не программист, но часто посещаю этот форум, где узнаю много полезной информации. Сейчас понадобилась ваша помощь/подсказка или/или готовое решение. Суть вопроса:

Я пользуюсь сервисом Битрикс24, в частности имеющимися там CRM-формами для публикации их на сайте. В системе можно настраивать поля формы под себя, из уже имеющихся там. Вот я сделал форму, поставил на сайт. И хочу чтобы в одно из полей этой встроенной формы автоматом при загрузке вставлялось значение. Конкретнее - часть ссылки с текущего сайта, на котором эта форма стоит. Это нужно для того, чтобы я мог разместить одну и ту же форму на нескольких сайтах, а при ее заполнении и отправке в Битриксе я уже видел, с какого сайта пришла заявка (вот для этого и нужно это копирование текущей ссылки в указанное поле).

Я сделал небольшой скрипт, который берет нужное мне значение (часть ссылки без хоста, этого достаточно) и вставляет в указанное поле класса input с определенным ID:

Код: Выделить всё

<script>
  function name_change() {
    var fileName = window.location.pathname;
    document.getElementById('LEAD_TITLE').value= fileName;
  }
window.onload=name_change
</script>
Это образец (точнее именно само поле из формы битрикса)

[HTML]<input class="crm-webform-input" type="text" name="LEAD_TITLE" id="LEAD_TITLE" placeholder="">[/HTML]

Форма подгружается во фрейме, код, сформированный для подгрузки (из битрикса). Там я уже вставил часть вышеуказанного кода, но вероятно не правильно... потому как не происходит подстановки в поле LEAD_TITLE значения из window.location.pathname

Код: Выделить всё

<script id="bx24_form_inline" data-skip-moving="true">
        (function(w,d,u,b){w['Bitrix24FormObject']=b;w[b] = w[b] || function(){arguments[0].ref=u;
                (w[b].forms=w[b].forms||[]).push(arguments[0])};
                if(w[b]['forms']) return;
                s=d.createElement('script');r=1*new Date();s.async=1;s.src=u+'?'+r;
                h=d.getElementsByTagName('script')[0];h.parentNode.insertBefore(s,h);
        })(window,document,'https://alcompstudio.bitrix24.ru/bitrix/js/crm/form_loader.js','b24form');
 
        b24form({"id":"8","lang":"ru","sec":"kqrzqp","type":"inline"});
function name_change() {
    var fileName = window.location.pathname;
    document.getElementById('LEAD_TITLE').value= fileName;
  }
iframe.onload=name_change
</script>
Код фрейма можно глянуть на образце странички

http://newtrendmarket.com/landing/sample-page/

сайт - на конструкторе Live Composer, вордпресс.

Я знаю, есть еще некие альтернативы, забирать значения полей через rest.php в битриксе, но это мне не совсем подходит, т.к. там не приходят уведомления в админке битрикса, и мне нужно указывать товары из каталога, а как сделать это я не знаю... повторюсь: не программист :)

Подскажите, что я не так сделал, и возможно ваше решение по этому вопросу, если конечно, это можно реализовать, не углубляясь сильно в код, альтернативным решениям также буду рад ).

Просьба к уважаемым специалистам: не отправляйте меня сразу "учить матчасть" по программированию, я прекрасно это понимаю и осознаю, что нужно знать хотя бы основы, просто сложилась такая ситуация, что нужно срочно и сейчас, желательно готовое решение ;)

Буду признателен за дельную информацию. Если что-то не указал для решения вопроса - подскажите, я сообщу доп.данные.
Ответить