Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 21.03.2015
Сообщений: 11
1

PHP. Создать форму, позволяющую выбрать цвет по названию цветка

24.03.2015, 22:14. Показов 1786. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, уважаемые кодеры, программисты и все, кто может помочь с довольно простой задачей на php.
Суть задачи состоит в создании формы, позволяющей выбрать цвет по названию цветка.
Всё, что нагуглилось/выстрадалось выглядит следующим образом:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php>
//массив с названиями цветов и соответствующими цветами
$flowers=array(
    '-'=>('сначала выберите цветок'),
    'Азалия'=>array('Красный', 'Розовый', 'Фиолетовый'),
    'Артишок'=>array('Фиолетовый'),
    'Ирис'=>array('Сиреневый','Желтый','Белый','Коричневый'),
    'Ландыш'=>array('Белый'),
    'Лютик'=>array('Желтый'),
    'Нарцисс'=>array('Белый','Желтый'),
    'Пион'=>array('Розовый','Белый'),
    'Фиалка'=>array('Сиреневый','Розовый'),
    'Фрезия'=>array('Белый','Синий','Желтый','Розовый','Красный')
    );
    
        $s1_val=isset($_GET['s1']) ? $_GET['s1'] : null; //Пользователь выбрал цветок?
        $s2_options=isset($flowers[s1_val]) ? $flowers[$s1_val]:$flowers['-']; //выбираем, какие цвета показывать
            function htmlSelect($name,$options,$extra='') {
            $o=array();
            $def = isset($_REQUEST[$name]) ? $_REQUEST[$name] : null;
            foreach($options as $v) $o[] = '<option value="'.$v.'" '.($def==$v?'selected="selected"':'').'>'.$v.'</option>';
            return '<select name="'.$name.'" id="'.$name.'" '.$extra.'>'.implode("\n",$o).'</select>';
                                                    }
?>
<form method="post" >
<?php echo htmlSelect('s1', array_keys($flowers),'OnChange="document.location=\'index.php?s1=\'+this.value"'); ?> 
<?php echo htmlSelect('s2', $s2_options );?> 
<input type="submit" name="btn_submit" value="save" />
</form>
И, к сожалению, не работает.
Прошу указать на ошибку или подсказать, как можно иначе всё это реализовать.
Также заранее извиняюсь за абсолютное неумение кодить и глупые вопросы.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.03.2015, 22:14
Ответы с готовыми решениями:

Создать форму, позволяющую выбрать размер по названию предмета
Создать форму, позволяющую выбрать размер по названию предмета. Помогите с php!!!

Создать анимацию на форме в виде распускающегося цветка
Подскажите способы решения это задачки. Добавлено через 7 минут Я так понял, нужно иметь...

Создать меню, с помощью которого можно выбрать цвет заливки текстового окна
В построенном окне создать меню, с помощью которого можно выбрать цвет заливки текстового окна....

Создать форму с CheckBox, при изменении свойства Checked менять цвет формы
Элемент управления CheckBox. Создать форму с CheckBox при изменении свойства Checked менять цвет...

4
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
24.03.2015, 22:44 2
Как вы собираетесь выбрать цвет по цветку, если на 1 цветок приходятся несколько цветов?
0
0 / 0 / 0
Регистрация: 21.03.2015
Сообщений: 11
24.03.2015, 22:54  [ТС] 3
nrobert, при выборе из списка конкретного цветка должен отображаться список возможных цветов для выбранного варианта (если я правильно поняла задание).
0
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
24.03.2015, 23:20 4
Лучший ответ Сообщение было отмечено arctica112 как решение

Решение

Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
$flowers=array(
    '-'=>array('сначала выберите цветок'),
    'Азалия'=>array('Красный', 'Розовый', 'Фиолетовый'),
    'Артишок'=>array('Фиолетовый'),
    'Ирис'=>array('Сиреневый','Желтый','Белый','Коричневый'),
    'Ландыш'=>array('Белый'),
    'Лютик'=>array('Желтый'),
    'Нарцисс'=>array('Белый','Желтый'),
    'Пион'=>array('Розовый','Белый'),
    'Фиалка'=>array('Сиреневый','Розовый'),
    'Фрезия'=>array('Белый','Синий','Желтый','Розовый','Красный')
);
 
?>
<form action="" method="post">
    <select name="flower">
        <?php
        foreach(array_keys($flowers) as $flower){
            echo '<option value="'.$flower.'">'.$flower.'</option>';
        }
        ?>
    </select>
    <input type="submit" value="Choose flower">
</form>
<?php
if($_POST){
?>
    <form>
        <select name="color">
            <?php
            foreach($flowers[$_POST['flower']] as $color){
                echo '<option value="'.$color.'">'.$color.'</option>';
            }
            ?>
        </select>
    </form>
<?php   
}
?>

В таких случаях я обычно использую JavaScript.
1
0 / 0 / 0
Регистрация: 21.03.2015
Сообщений: 11
24.03.2015, 23:28  [ТС] 5
nrobert, огромное спасибо)
Бесспорно, JavaScript гораздо предпочтительнее для этих целей. Но задачу дали именно на php.
0
24.03.2015, 23:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.03.2015, 23:28
Помогаю со студенческими работами здесь

Создать анимацию роста цветка, чтобы со временем он рос и распустился
Ребят, кто может помогите пожалуйста задача такая. Надо создать анимацию цветка что бы со временем...

Создать программу, в которой на заданный через форму вопрос предлагается выбрать 1 из 3 предложенных ответов
Помогите пожалуйста!!! Создать программу в которой на заданный через форму вопрос предлагается...

Почему не получается создать динамическую форму в php
есть задача: для конкретного юзера отображается список всех проектов, над которыми он может...

Создать форму Создание заказа, где пользователь сможет выбрать в соответствующих полях списка необходимое
Здравствуйте! Помогите, пожалуйста. Требуется создать форму Создание заказа, где пользователь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru