Опытным разработчикам рекомендую сразу пройти мимо. Заметка чисто для себя на случай наступления склероза, а так же молодым разработчикам, которые только открывают для себя процесс разработки шаблонов для веб-форм.
Модуль веб-форм загадочен тем, что в дефолтном шаблоне поле выводится очень просто:
Если же нужно обернуть поле ввода результатов в какое-то своё представление (ну, например в бутстрап), то начинаются танцы с бубном.
Нам необходимо собрать руками конструкцию вроде:
Пример говно-кода, который вполне работает для вопросов с 1 вариантом ответа:
В этот момент следует обратить внимание на то, что в массиве есть 3 типа ID'шек, которые в общем виде могут быть и не равны друг другу:
Кто же знал, что это всё-таки ИД вопроса, а нужен ИД ОТВЕТА!
Повторяю, когда мы выводим Input, то нам надо выводить класс с ID ОТВЕТА
Таким образом правильная конструкция (в примере выше) содержит именно ID:
=(
Наличие бага приводит к тому, что ВСЕ классы ВСЕХ вопросов формы начиная с первого вопроса имеющего более 2 ответов (даже если его удалить) будут иметь рассинхронизацию и форма их принимать не будет.
Как результат такие вот сообщения об ошибке даже для полностью заполненных форм:
Модуль веб-форм загадочен тем, что в дефолтном шаблоне поле выводится очень просто:
<?=$arQuestion["HTML_CODE"]?> |
Нам необходимо собрать руками конструкцию вроде:
<input type="text" class="inputtext" name="form_text_19" value="" size="0"> |
<input style="margin-top: 5px; margin-bottom: 5px; font-size: 19px; height: 50px;" placeholder="<?=$arQuestion['CAPTION']?>" class="required form-control" type="text" name="form_<?=$arQuestion['STRUCTURE']['0']['FIELD_TYPE']?>_<?=$arQuestion['STRUCTURE']['0']['ID']?>" value=""> |
- FIELD_ID
- QUESTION_ID
- ID
Кто же знал, что это всё-таки ИД вопроса, а нужен ИД ОТВЕТА!
Повторяю, когда мы выводим Input, то нам надо выводить класс с ID ОТВЕТА
Таким образом правильная конструкция (в примере выше) содержит именно ID:
- FIELD_ID - НЕ правильно
- QUESTION_ID - НЕ правильно
- ID - ПРАВИЛЬНО
=(
Наличие бага приводит к тому, что ВСЕ классы ВСЕХ вопросов формы начиная с первого вопроса имеющего более 2 ответов (даже если его удалить) будут иметь рассинхронизацию и форма их принимать не будет.
Как результат такие вот сообщения об ошибке даже для полностью заполненных форм: