Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Анкета. Чекбоксы и радио-кнопки. 
:(
    Опции темы
bugsb
Дата 11.10.2009, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 11.9.2009

Репутация: нет
Всего: нет



_http://anketa.itay.ru/result.php
вот что у меня на данный момент

Код

id | type | value |              text                   | parent_id
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 5     0      0      Бывали ли Вы на мероприятиях музея?       0
 6     1      7      Да                                        5
 7     1      2      Нет                                       5
 8     2      0      Рождество в музее                         6
 9     2      2      Сударыня-масленица                        6
10     2      2      Остров детства                            6




вот так примерно составлена БД. Каким образом можно сделать чтобы при выводе результатов полоски у подответов (рождество в музее, сударыня-масленица, остров детства) выводился другим цветом (не зеленым). 

возьмем к примеру ответ и подответ, они ничем не отличаются в базе, то что один из них по типу чекбокс (type=2) а другой радио (type=1) ничего не значит, т.к. есть ответы с type=2 (чекбоксы).

Это сообщение отредактировал(а) bugsb - 11.10.2009, 10:38
PM MAIL   Вверх
bars80080
Дата 11.10.2009, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 9
Всего: 315



при выборке вы их размещаете под родителем, то есть ответы под вопросом, подответы под ответом. не сложно в этом случае расписать стили так, чтобы более глубокий уровень отмечался другим цветом. также не сложно раскидать в разные классы. только это уже относится к использованию условия if(), а не к БД
PM MAIL WWW   Вверх
bugsb
Дата 11.10.2009, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 11.9.2009

Репутация: нет
Всего: нет



Код

foreach($menu as $value) {
     
            if ($value['quest_type']==0) $type = $value['quest_text'];
            else $type = $value['quest_text']."<div style='width:400px; height:4px; margin-bottom:5px; border-top:1px solid #d7d7d7;'><div style='width:".$value['procent']."%; background:#3caa3c; height:4px;'></div></div>";
      
            // если у текущего элемента нет детей
            if(count($value['child'])==0)
                $content.="<li>{$type}</li>"; // заносим элемент списка li
            // если у текущего элемента есть дети
            else {
                $content.="<li>{$type}<ul>"; // заносим элемент списка li и открываем список детей
                printChildMenu2($content, $value['child']); // (рекурсивный вызов) обходим детей элемента для формирования списка
                $content.="</ul></li>"; // заносим конец списка детей.     
            }
}

вот примерно так формируются уровни. Я вообще не могу себе представить условие по каторому будут различаться второй уровень от первого...  smile 
PM MAIL   Вверх
bars80080
Дата 11.10.2009, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 9
Всего: 315



            // если у текущего элемента есть дети
            else {
                $content.="<li>{$type}<ul class="qw">"; // заносим элемент списка li и открываем список детей

здесь же достаточно прописать соответствующий класс:
PM MAIL WWW   Вверх
bugsb
Дата 11.10.2009, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 11.9.2009

Репутация: нет
Всего: нет



не совсем... этот код что я писал выше формирует вот такой хтмл код (все лишнее убрал)

Код

<li>
    <b>Бывали ли Вы на мероприятиях музея?</b>
    <ul>
        <li>Да
            <ul>
                <li>Рождество в музее</li>
                <li>Сударыня-масленица </li>
                <li>Остров детства </li>
                <li>День Военно-Морского флота </li>
            </ul>
        </li>
        <li>Нет</li>
    </ul>
</li>


если добавить класс к <ul> ответы и подответы будут с этим классом. Для скрипта первый уровень - сам вопрос.

Это сообщение отредактировал(а) bugsb - 11.10.2009, 12:57
PM MAIL   Вверх
capitan
Дата 11.10.2009, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 2
Всего: 13



А что мешает в таблице завести поле level ? И писать в него уровень вложенности.
PM MAIL WWW ICQ   Вверх
bugsb
Дата 11.10.2009, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 11.9.2009

Репутация: нет
Всего: нет



в таком случае эта проблема решится, но возникнет другая более сложная, каким образом прописывать уровень? если все вопросы создаются через админ-панель (ну пока еще не создаются, но будут)

можно сделать просто "каким цветом отображать полоску в результатах". 
- Зеленым
- Синим

но как то слишком много настроек для простого создания анкеты....


хм.. щас еще мысль пришла, если parent_id у родителя = 0, то это второй уровень, если parent_id отличен от нуля, то это третий, а четвертый и пятый и шестой автоматом никак не прописать, а если ручками, то это равносильно прописыванию цвета к каждому вопросу
PM MAIL   Вверх
capitan
Дата 11.10.2009, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 2
Всего: 13



Цитата(bugsb @ 11.10.2009,  17:41)
в таком случае эта проблема решится, но возникнет другая более сложная, каким образом прописывать уровень? если все вопросы создаются через админ-панель (ну пока еще не создаются, но будут)

А что тут сложного? Подвопрос вешается на родителя. У родителя считываем уровень и прибавляем 1.
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0506 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.