В общем, взял недавно проект - разработка опросника для одной фирмы. Весь опросник состит из 24х вопросов, разной структуры. Встала задача - сделать.
Имеем задачу:
6 категорий вопросов, в каждой по 2-4 группы вопросов, в каждой группе от 2х до 4х вопросов.
Ответы имеются разные, точнее, их виды. Приведу примеры всех типов:
Свернутый текст
Вопрос 1
[текстовое поле]
Вопрос 2
[радио 1] Да [радио 1] Нет
Вопрос 3
[чекбокс 1] Да [чекбокс 1] Нет
Вопрос 4
[чекбокс 1] Да [чекбокс 1] Нет
Если да, то:
Уточните, почему да?
[текстовое поле]
Вопрос 5
[чекбокс 1] Текст 1 [чекбокс 2] Текст 2 [чекбокс 3] Текст 3
При выборе чекбокса выпадает под ним еще
Текст к чекбоксу 1
[радио 1] Да [радио 1] Нет
Вопрос 6
Расставьте в приоритете от 1 до 10
[числовое поле] Текст 1
[числовое поле] Текст 2
[числовое поле] Текст 3
....
[числовое поле] Текст 10
Вот что в этом роде. У меня стояло перед собой 2 задачи:
- Отрисовать каркас и просто туда запихивать структуры
- или просто каждый вопрос обернуть в уже готовый хтмл
Решил взять первый тип.
Встала другая задача, как организовать все хранения этих сущностей.
В голову пришли 3 варианта:
- INI файл (парсить)
- XML файл (ибо данные в итоге нужно представить в PDF и в XML)
- БД
Остановился на 2м.
Встал вопрос организации. Вот тут ступор меня прихватил.
Как организовать все эти типы? Не знаю даже. Времени уже нет думать, дедлайн завтра, поэтому, придется писать для всех хтмл методом - копипастер.
Может есть у кого мысли по этому поводу? Будет интересно подумать :)
Прикладываю примерный код своего xml:
Свернутый текст
<?xml version="1.1" encoding="UTF-8" ?>
<base name="benefit">
<group title="ИНФОРМАЦИЯ О КОМПАНИИ">
<question id="1">
<text value="">
<var id="1" text="" type="" value="" need="1"></var>
</text>
<text value="">
<var id="1" text="" type="" value="" need="1"></var>
</text>
<text value="">
<var id="1" text="" type="" value="" need="1"></var>
</text>
<text value="">
<var id="1" text="" type="" value="" need="1"></var>
</text>
</question>
/* А вот мой INI, там страх :) Пришлось тексты чуть менять */
[q-7]
q[] = 'Своевременность предложений. Мы предлагаем тогда, когда надо, то, что нужно:radio:0-Да, обычно попадаете;1-Часто;2-Иногда;3-Не понимаю, зачем я вообще с этой компанией работаю?';
q[] = 'Интересные продуктовые предложения:radio:0-Да;1-Часто;2-Редко;3-Я люблю скупать всё ненужное';
q[] = 'Ассортимент:checkbox:0-Всё устраивает;1-Хорошо бы добавить еще разных ноутбуков и планшетов;2-Мало брендов;3-Дайте аксессуаров!;4-Нужно поработать над новыми направлениями';