PHP :: Передача текстовых данных в массивах
В PHP также имеется возможность обрабатывать данные переданные формой в массивах. Рассмотрим данную возможность на примере №1.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Отправка данных в массивах</title> </head> <body> <form action="example_10_4.php" method="POST" name="form_10_3"> Введите имя <input type="text" name="personal[first_name]"><br><br> Введите фамилию <input type="text" name="personal[last_name]"><br><br> Предпочитаете <input type="checkbox" name="choice[]" value="овощи">овощи <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).
<!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, а уже затем использовали переменную для получения значений элементов массива по их числовым ключам.
Быстрый переход к другим страницам
- Простая отправка текстовых данных в PHP
- Передача текстовых данных в массивах в PHP
- Загрузка пользовательских файлов на сервер в PHP
- Вернуться к оглавлению учебника