В этой заключительной части учебника про основы программирования на PHP, решил рассказать как работать с формой и с различными запросами к серверу.
Что такое запрос:
Перед тем как начать работать с формой, надо понять что такое запросы. Есть два основных типа запрос к серверу, GET и POST.
GET запрос:
Это как правила не большой запрос к серверу, к примеру, реферальные ссылки, это и есть Get запрос, сделать его очень просто, вот пример.
1 | https://example.com/user?name=aleks&surname=pupkin |
Давайте разберём эту ссылку, сначала у нас идёт домен example.com
, тут всё просто, потом называние страницы на которую мы отсыпаемся /user
, дальше как раз и есть GET запрос name=aleks&surname=pupkin
.
Сначала в GET запросе идёт название как бы переменой, после равно и значение этой переменной, если нам нужно сообщить больше данных, то через знак «&», сообщается ещё одна переменная и её значение.
POST запрос:
С POST запросом куда проще в каком то смысле, вы не сможете проверить этот запрос через строку браузера, только через панель разработчика, опять же в браузере.
Также он используется для отправки больших данных, например, текст для статьи.
Работа с формой в PHP:
Теперь пришло время самого интересного, работы с формой в самом PHP, для этого вам нужно запомнить три основных стандартных массива.
1 2 3 | $_REQUEST; // Имеет все данные из GET, POST запросах $_GET; // Имеет данные из GET запросах $_POST; // Имеет данные из POST запросах |
С ними в основном и будем работать, теперь можно создать форму, здесь не будет описано что для чего нужно в форме, так как, вы уже должны это знать, а только как работать с ней в PHP, но покажу какая форма нам сейчас нужна.
1 2 3 4 5 6 7 | <body> <form action="<?php $_SERVER['REQUEST_URI'] ?>" method="get"> <input type="number" name="id" id=""> <input type="submit" name="doGo" value="Отправить"> </form> <div><?php echo $userName ?></div> </body> |
Как видите это в целом обычная форма, единственно, $_SERVER['REQUEST_URI']
получает URL данной страницы, она нам нужна, что бы указать куда отправлять данные.
Ниже формы, будет выводится имя пользователя, которого мы нашли.
Вот код самой программы.
1 2 3 4 5 6 7 8 9 10 | // Массив с именами $users = array('Паша', 'Маша', 'Илья', 'Вася', 'Даша'); // Проверка, нажата ли кнопка отправить if ($_REQUEST['doGo']) { // Получаем номер пользователя, который нужен $id = $_REQUEST['id']; // Получаем из массива имя $userName = $users[$id-1]; } |
Как видите он совсем простой, сначала мы создаём массив с именами, потом проверяем, нажата ли кнопка, если да, то получаем значение которое ввели в поле.
Дальше присваиваем переменной $userName
имя из массива, в качестве значение которое мы передаём в массив, используем номер, при этом уменьшаем его на один, так как, индексация в массиве PHP начинается с нуля.
После всего этого выводим имя на экран.
Номер который написали не остаётся в поле, потому что после отправки, обновляется страница, что бы номер оставался в поле.
Но это подойдёт только для работы с одиночным выбором, к примеру работать select
, с множественным выбором не получится, тут надо это делать не много по другому, вот пример формы.
1 2 3 4 5 6 7 8 9 10 11 | <form action="<?php $_SERVER['REQUEST_URI'] ?>" method="get"> <select name="names[]" multiple> <option value="Паша">Паша</option> <option value="Маша">Маша</option> <option value="Илья">Илья</option> <option value="Вася">Вася</option> <option value="Даша">Даша</option> </select> <input type="submit" name="doGo" value="Отправить"> </form> <div><?php print_r($_REQUEST['names']);?></div> |
Как можете заметить, единственное, что отличается, это атрибут name
, у тега <select>
, его значение равно names[]
, что говорит о том, что нужно отправлять массив, вот результат программы.
Как видите возвращается массив.
Вывод:
Как видите работать с формой в PHP, не сложно, надо только запомнить основанные массивы для этого, Вот так работает форма в PHP.