Обработка списков в PHP

Обработка списков в PHP

Всем доброго времени суток. На связи Алексей Гулынин. В статье, посвященной обработке полей формы в PHP, мы с вами убедились, что передавать значения полей формы на обработку достаточно просто. Мы использовали массив $_REQUEST, где в качестве параметра указывали имя поля. И у всех полей были разные имена. Но как скрипт отработает в том случае, когда у полей одинаковые имена и мы выбираем несколько, например такая ситуация возникает при работе со списками, флажками (checkbox). Давайте создадим скрипт, который будет показывать значения из списка, которые мы выбрали. Также будем создавать всё в одном файле:

<?php if (!isset($_REQUEST['start'])) {?>
	<?php echo "<form action='$_SERVER[SCRIPT_NAME]'> 
	<select name='cities' multiple> 
		<option>Moscow
		<option>Piter 
		<option>Saratov
	</select> 
	<input type='submit' name='start' value='Запустить сценарий'/>
</form>";}
else { 
		echo "Города: ".$_REQUEST["cities"];
	} 
?>

Если мы запустим данный скрипт и выберем пару городов, то будет показан только последний. Чтобы иметь возможность вывести все города, необходимо как-то их всех передать. Для этого можно использовать массивы, т.е. в качестве значения атрибута name нашего select можно поставить cities[]:

<?php
	<select name='cities[]' multiple>
?>

Все города можно вывести с помощью print_r($_REQUEST['cities']) (это быстрый вариант), или воспользоваться циклом foreach:

<?php
foreach ($_REQUEST["cities"] as $city) {
   echo "$city ";
}
?>

После этого, сколько бы элементов мы ни выбрали, скрипт нормально отработает и выведет нам все города.
Аналогично будет строиться работа по обработке флажков (checkbox). В отличие от radiobutton, элементов с типом checkbox можно выбрать сколько угодно много.

В качестве домашнего задания:

Создайте скрипт, который будет спрашивать ваш пол (использовать radiobutton), а также языки программирования, которые вы знаете (сделать на выбор 3 языка). На страницу должно выводиться: ваш пол, языки, которые знаете.

Рекомендую сделать самим, но, если возникнут трудности, то код можно посмотреть под хайдом.

Подсмотреть код реализации

<?php if (!isset($_REQUEST['start'])) {?>
	<?php echo "<form action='$_SERVER[SCRIPT_NAME]'> 
	Ваш пол: </br>
	<input type='radio' name='sex' value='male'/>Мужской</br>
	<input type='radio' name='sex' value='female'/>Женский</br>
	Какие языки вы знаете: </br>
	<input type='hidden' name='lang1' value=''/>
	<input type='checkbox' name='lang1' value='php'/>PHP</br>
	<input type='hidden' name='lang1' value=''/>
	<input type='checkbox' name='lang1' value='javascript'/>javascript</br>
	<input type='hidden' name='lang[CSharp]' value=''/>
	<input type='checkbox' name='lang[CSharp]' value='CSharp'/>C#</br>
	<input type='submit' name='start' value='Запустить сценарий'/>
</form>";}
else { 
	if ($_REQUEST['sex'] === "male") echo "Ваш пол: мужской </br>"; else echo "Ваш пол: женский </br>";
	echo "Вы знаете следующие языки программирования: </br>";
	foreach ($_REQUEST["lang"] as $lang) {
		if ($lang !== "") echo "$lang </br>";
	}
} 
?>

В данной статье вы узнали, как работать с полями множественного выбора в PHP.

На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.


Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *