html.okpython.net
HTML и CSS для начинающих

PHP :: Передача текстовых данных в массивах

В PHP также имеется возможность обрабатывать данные переданные формой в массивах. Рассмотрим данную возможность на примере №1.

HTML PHP Результат htmlCodes
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">	
	<title>Отправка данных в массивах</title>
</head>
<body>
	<form action="example_10_4.php" method="POST" name="form_10_3"> 
		Введите имя  &nbsp; <input type="text" name="personal[first_name]"><br><br>
		Введите фамилию  &nbsp; <input type="text" name="personal[last_name]"><br><br>
		Предпочитаете &nbsp; 
		 <input type="checkbox" name="choice[]" value="овощи">овощи &nbsp; 
		 <input type="checkbox" name="choice[]" value="фрукты">фрукты<br><br>
		<button type="submit" name="submit" value="send">Отправить</button>
	</form>
</body>
</html>
<?php

//Чтобы не усложнять пример, будем считать, что все данные были введены 
//Достаем полученные данные из суперглобального массива $_POST
//и присваиваем их переменным для удобства использования
$first_name = $_POST["personal"]['first_name'];
$last_name = $_POST["personal"]['last_name'];
//Поскольку в форме мы индексы не указывали, им были назначены числовые 
//индексы согласно их появлению в коде html (индексация начинается с нуля)
$user_choice_0 = $_POST["choice"][0];
$user_choice_1 = $_POST["choice"][1];

//Выводим сообщение
echo $first_name.' '.$last_name.' любит '.$user_choice_0.' и '.$user_choice_1; 

?>

Пример №1. Передача текстовых данных в массивах

Как видно из примера, данные можно группировать в массивы. В нашем случае для первых двух полей мы использовали массив personal с двумя элементами: personal[first_name] и personal[last_name] (ключи в кавычки брать не нужно). В результате этого, после отправки данных формы на сервер, значения, введенные пользователем в поля формы, будут доступны в php-скрипте через $_POST["personal"]["first_name"] и $_POST["personal"]["last_name"] (в самом скрипте кавычки лучше указывать). Если ключи элементов массивов в форме не указать, им будут присвоены числовые ключи. При чем, значение элемента формы, который идет в коде первым, станет первым элементом массива, значение элемента формы, который следует за ним, вторым элементом массива и т.д. В примере мы не указывали ключи элементов массива choice, поэтому на сервере значения, введенные пользователем в поля формы, будут доступны через $_POST["choice"][0] и $_POST["choice"][1]. Данная ситуация показана в примере №1.

Передача текстовых данных в массивах может быть весьма удобна при использовании элемента «select» с заданным атрибутом multiple, который позволяет выбирать сразу несколько элементов списка (см. пример №2).

HTML PHP Результат htmlCodes
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">	
	<title>Отправка данных в массивах</title>
</head>
<body>
	<form action="example_10_6.php" method="POST" name="form_10_5"> 
		фрукты: 	<select multiple name="fruits[]" size="3">    
						<option value="яблоки">Яблоки</option>
						<option value="апельсины">Апельсины</option>
						<option value="лимоны">Лимоны</option>
					</select> <br><br>
		<button type="submit" name="submit" value="send">Отправить</button>
	</form>
</body>
</html>
<?php

//Чтобы не усложнять пример, будем считать, что все данные были введены 
//Достаем из суперглобального массива $_POST сразу весь массив fruits
$fruits = $_POST['fruits'];		

echo 'Вы выбрали все фрукты: '.$fruits[0].', '.$fruits[1].' и '.$fruits[2];		

?>

Пример №2. Использование массива для передачи данных в элементе 'select'

При выборе нескольких значений из списка они будут автоматически добавляться в созданный массив fruits в качестве элементов fruits[0], fruits[1] и т.д., что особенно удобно при большом количестве вариантов.

Напомним, что для выбора нескольких пунктов списка нужно использовать клавиши Ctrl и Shift.

В качестве обработчика данной формы используем php-скрипт примера №2. В нем мы в качестве примера присвоили переменной весь переданный массив fruits, а уже затем использовали переменную для получения значений элементов массива по их числовым ключам.

Быстрый переход к другим страницам