В предыдущих уроках мы рассмотрели, как можно передавать на сервер отдельные значения — строки, числа и другие простые данные. Однако на практике нередко возникает необходимость отправить не одно значение, а целый набор данных, например список товаров, массив чекбоксов или несколько однотипных полей ввода. В таких случаях на помощь приходит возможность отправки массивов данных с помощью HTML-форм и их последующей обработки в PHP.
Отправка массивов через форму осуществляется очень просто. Для этого в атрибуте name элементов формы указывается имя с квадратными скобками []. Это позволит серверу распознать переданные значения как массив.
Рассмотрим пример простой формы, отправляющей список языков программирования:
<form action="process.php" method="post">
<label><input type="checkbox" name="languages[]" value="PHP"> PHP</label><br>
<label><input type="checkbox" name="languages[]" value="Python"> Python</label><br>
<label><input type="checkbox" name="languages[]" value="C#"> C#</label><br>
<label><input type="checkbox" name="languages[]" value="JavaScript"> JavaScript</label><br>
<input type="submit" value="Отправить">
</form>
Когда пользователь отметит несколько пунктов и отправит форму, данные попадут на сервер в виде массива.

Теперь рассмотрим, как получить и обработать этот массив в PHP:
<?php
if (isset($_POST['languages'])) {
$languages = $_POST['languages']; // Получаем массив значений
echo "Вы выбрали следующие языки программирования:<br>";
foreach ($languages as $lang) {
echo htmlspecialchars($lang) . "<br>";
}
} else {
echo "Вы не выбрали ни одного языка.";
}
?>
В этом примере используется цикл foreach, чтобы пройтись по всем элементам массива $languages и вывести их на экран.
Также здесь применяется функция htmlspecialchars(), которая защищает выводимые данные от внедрения HTML или JavaScript-кода (эта тема подробно разбиралась в предыдущем уроке).
Отправка ассоциативных массивов
Иногда возникает необходимость передавать массив с ключами. Это также возможно при использовании HTML-форм.
Например:
<form action="save.php" method="post">
<input type="text" name="user[name]" placeholder="Имя"><br>
<input type="text" name="user[email]" placeholder="Email"><br>
<input type="text" name="user[city]" placeholder="Город"><br>
<input type="submit" value="Отправить">
</form>

В этом случае на сервере можно получить ассоциативный массив следующим образом:
<?php
if (isset($_POST['user'])) {
$user = $_POST['user'];
echo "Имя: " . htmlspecialchars($user['name']) . "<br>";
echo "Email: " . htmlspecialchars($user['email']) . "<br>";
echo "Город: " . htmlspecialchars($user['city']);
}
?>
Таким образом, PHP автоматически распознаёт структуру данных, переданную с формы, и создаёт из неё массив, что делает работу с формами гораздо удобнее.
Передача массивов данных через формы в PHP — это удобный и гибкий способ отправки связанных значений. Используя синтаксис name="array[]" для обычных массивов и name="array[key]" для ассоциативных, можно легко структурировать данные ещё на этапе их формирования в HTML.
Главное — не забывать о безопасности: перед выводом любых данных на страницу обязательно применять функции вроде htmlspecialchars(), чтобы избежать внедрения вредоносного кода.
Отправка массивов — важный шаг в понимании того, как PHP взаимодействует с формами и как правильно организовать обмен данными между клиентом и сервером.
0 Комментарий(я)
Зарегистрируйтесь чтобы оставить комментарий