Наконец-то дошли руки до решения данной задачи. Вкратце опишу задачу: есть форма, в ней есть вопрос типа "dropdown", требуется для данного вопроса брать значения из названия элементов инфоблока.[spoiler]
Главная задача состоит в том, чтобы поддерживать актуальность значений вариантов ответа и элементов инфоблока, т.е. сделать синхронизацию. Самым простым решением будет использование обработчиков:
Очень полезное решение, я почему-то все делал наоборот, и делал выборку ответов в шаблоне веб-формы.
Данный метод очень даже логичный.
Правда, может быть небольшой казус, если редактор исправит варианты ответов в настройках веб-формы, а потом на следующий день они перезапишутся обработчиком.
Довольно "тяжёлое" решение получается на каждом хите по форме.
Правда, может быть небольшой казус, если редактор исправит варианты ответов в настройках веб-формы, а потом на следующий день они перезапишутся обработчиком.
Не совсем понятно: "исправят", "перезапишутся". Если можно, то поконкретнее. По идее ничего фатального, при работе с эл. инфоблока и вариантами ответов вопроса одновременно, не произойдёт. Не забывайте про:
Если требуется добавлять не все подряд элементы в вопрос формы, то дополнить условие проверкой какого-либо свойства ("Передать в форму?", "да/нет").
Довольно "тяжёлое" решение получается на каждом хите по форме.
Да, поэтому Ваше решение мне больше понравилось.
Не совсем понятно: "исправят", "перезапишутся". Если можно, то поконкретнее. По идее ничего фатального, при работе с эл. инфоблока и вариантами ответов вопроса одновременно, не произойдёт.
Пример: есть инфоблок с моделями, и веб-форма с записью на тест-драйв, где в выпадающем списке находятся модели, которые доступны для тест-драйва http://toyota-ua.com/choose/drive/
Может быть ситуация, когда редактору нужно изменить модели из этого списка, и он не знает, по какому принципу строится этот список.
Он первым делом заходит в настройки веб-формы, находит нужный вопрос "Выберите модель", и исправляет (добавляет или удаляет) ответы этого вопроса. Рассмотрим случай, когда он удалил одну модель из списка доступных для тест-драйва. После того, как он модель из списка удалил, он заходит на сайт, и проверяет изменения. Все хорошо, список моделей изменился, и редактор довольный идет делать следующие задачи.
На сделующий день он поменял цену одного из автомобилей, и это повлекло за собой то, что заново сгенерировался список ответов в веб-форме (список моделей, доступных для тест-драйва).
Посетитель заходит на сайт - и видит что модель доступна для тест-драйва, звонит на фирму, а ему отвечают что такой модели нет.
Тогда служба контроля качества звонит редактору, а он уверяет что вчера изменил список моделей, и даже проверил результат во всех браузерах, авторизированными и неавторизированными пользователями.
После этого находят программиста который делал сайт, и делают крайним его.
На самом деле проблема немного надуманна и маловероятна, и при правильно составленной инструкции по наполнению сайта она возникать не должна.
Я делал так же, только в поле VALUE (то, которое для внутреннего использования ) варианта ответа писал id элемента. Кстати, при удалении элемента инфоблока, важно не удалять вариант ответа иначе все заполненные пользователями результаты веб-формы потеряют это значение.
Кстати, при удалении элемента инфоблока, важно не удалять вариант ответа иначе все заполненные пользователями результаты веб-формы потеряют это значение.
это пока, для проверки, срабатывают ли функции на изменение в инфоблоке.
Т.е. при добавлении или изменении любого информационного блока должно срабатывать событие OnAfterIBlockElementUpdate или OnAfterIBlockElementAdd и вызываться функция function OnAfterIBlockElementHandler(&$arFields) о чем в лог файл должна поступить запись AddMessage2Log("Запись с кодом ".$arFields["IBLOCK_ID"]." изменена.");
Я изменяю блок, а в ответ тишина... Может быть я что-то делаю не так?
нет, речь как раз о том, чтоб решить "задачу: есть форма, в ней есть вопрос типа "dropdown", требуется для данного вопроса брать значения из названия элементов инфоблока."
Просто пока раз функции не срабатывают, упростили init.php донельзя, разбираемся, где сбой
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».