Упражнения с функцией PHP: вывести метеоусловия выбранные пользователем
Вывести метеоусловия выбранные пользователем
Напишите функцию для создания флажков формы из предоставленных аргументов. Эта функция должна иметь возможность принимать переменное количество аргументов, чтобы вы могли создавать в ней любое количество флажков. Убедитесь, что первый символ значений для чекбоксов написан в верхнем регистре.
Создайте для пользователя форму с запросом «Пожалуйста, введите вашу информацию». Затем создайте три текстовых поля ввода, для ввода пользователем города, месяца и года.
Создайте массив с перечнем погодных условий ckBox('солнце', 'облака', 'дождь', 'град', 'мокрый снег', 'снег', 'ветер', 'холод', 'тепло').
Когда пользователь нажимает кнопку Выполнить, выведите уведомление "В городе $inputLocal[0] в месяце $inputLocal[1] $inputLocal[2] года, вы наблюдали следующую погоду:" и выведите ввиде списка в теге <ul> погодные условия, отмеченные пользователем в чекбоксах.
В результате вы должны получить такую форму:
Пример
Попробуй сам »<?php
//Определить функцию
function ckBox(){
//Функция func_get_arg() допускает неопределенное количество аргументов
$args=func_get_args();
/*Теперь перебираем аргументы, используя верхний регистр
строковая функция и включение разрывов строк */
foreach ($args as $a){
echo "<input type=\"checkbox\" name=\"weather[]\" value=\"$a\" />" .
ucwords($a). "<br />\n";
}
}
//Если форма не отправлена, отобразить форму
if (!isset($_POST['submit'])){
?>
<form method="post" action="yourfile.php">
<p>Пожалуйста, введите вашу информацию:</p>
Город: <input type = "text" name = "city" />
Месяц: <input type = "text" name = "month" />
Год: <input type = "text" name = "year" />
<p> Выберите тип погоды из списка ниже</p>
<! - Используйте здесь свой флажок ->
<?php
ckBox('солнце', 'облака', 'дождь', 'град', 'мокрый снег', 'снег', 'ветер', 'холод', 'тепло');
?>
<input type="submit" name="submit" value="Выполнить" />
</form>
<?php
//Если форма отправлена, обрабатываем ввод
}else{
//Получение информации о дате и местоположении
$inputLocal = array(
$_POST['city'],
$_POST['month'],
$_POST['year']
);
echo "В городе $inputLocal[0] в месяце $inputLocal[1] $inputLocal[2] года,
вы наблюдали следующую погоду:<br/> <ul>";
//Убедитесь, что вы включили строковую функцию в верхнем регистре для элементов списка
$weather = $_POST['weather'];
foreach($weather as $w){
echo "<li>" . ucwords($w) . "</li>\n";
}
echo "</ul>";
}
?>
ucwords — Преобразует в верхний регистр первый символ каждого слова в строке
Синтаксис
ucwords ( string $string , string $separators = " \t\r\n\f\v" ) : string
Возвращает строку string, в которой первый символ каждого слова переведён в верхний регистр, если этот символ является буквой.
Словом при этом является любая последовательность символов, следующая непосредственно за любым из символов, перечисленных в параметре separators (по умолчанию это пробел, разрыв страницы, перевод строки, возврат каретки, горизонтальная или вертикальная табуляция).
Комментарии
<code>
, несколько строчек кода — в теги<pre><code>
...ваш код...</code></pre>
.