Сначала напишем HTML-документ, который будет содержать практически все элементы HTML-формю Параметры формы мы будем передавать скрипту для последующией обработки. Итак, листинг HTML-документа send.html:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Когда пользователь нажимает кнопку "Отослать форму", браузер передаст скрипту следующие параметры: textfield - значение текстового поля; pswfield - значение поля ввода пароля; hidden - значение скрытого поля;
параметры checkbox: checkbox1, checkbox2 и checkbox3 будут переданы только в том случае, если соответствующие им независимые переключатели активны; radiobutton - значение группы radio (будет передано одно из значений: Yes или No); textarea - содержимое многострочной текстовой области; day_s - значение списка с единственным выбором; day_m - значения списка с множественным выбором.
Теперь перед нами стоит задача обработки всех параметров переданной формы с помощью PHP скрипта.
Параметры textfield,pswfield и textarea обрабатываются достаточно просто. Например, для отображения значения параметра textfield достаточно написать в обрабатывающем скрипте:
Код:
echo $_POST['textfield'];
С параметрами checkbox1, checkbox2, checkbox3, и radiobutton дело обстоит несколько сложнее. Если переключатель не активен, то перечисленные параметры вообще не будут переданы на сервер, как будто их вообще не было. Следовательно, при попытке обратиться в скрипте к этим параметрам, мы получим сообщение, что переменная не существует. Поэтому просто написать
Код:
echo $_POST['checkbox1'];
мы не можем, нам необходимо сначала проверить существование этих параметров в запросе. Проверка существования параметра осуществляется с помощью функции isset(), которая служит для проверки существования переменных.
Код:
if (isset($_POST['checkbox1'])) echo $_POST['checkbox1'];
if (isset($_POST['radiobutton'])) echo $_POST['radiobutton'];
Только после проверки существования перечисленных параметров формы можно начинать работу с переменными.
Сложнее обрабатывать параметры списка с множественным выбором, так как в этом случае параметры передаются так:
Код:
day_m=01&day_m=03&day_m=07...
Действительно, мы оказались в ситуации, когда один параметр имеет несколько значений. Это напоминает нам массив данных. Действительно, множественный список можно представить в виде массива, а обработать его элементы с помощью цикла foreach. Нам даже не обязательно знать колличество элементов множественного списка. Нам нужно лишь предварительно дать понять PHP, что мы будем передавать массив:
Код:
<select name="day_m[]" size=7 mutiple>
Квадратные скобки []- это признак массива. Циклическая обработка массива осуществляется так:
Код:
foreach ($_POST['day_m'] as $key=>$value) echo "$key = $value <br>";
А теперь приведем окончательный листинг PHP скрипта, обрабатывающего нашу тестовую форму:
PHP код:
<?php // Выводим HTML-заголовки: echo '<html>'; echo '<head>'; echo '<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">'; echo '<title>Test Form</title>'; echo '</head>'; echo '<body>'; echo '<h3>Тестовая форма</h3>'; echo "<p>Переданное значение текстового поля: <b>".$_POST['textfield']."</b></p>"; echo "<p>Переданное значение поля пароля: <b>".$_POST['pswfield']."</b></p>"; echo "<p>Переданное значение скрытого поля hidden: <b>".$_POST['hidden']."</b></p>"; echo '<hr size="1">'; echo '<p>Были включены следующие независимые переключатели: </p>'; if (isset($_POST['checkbox1'])) echo "<p><b>Первый</b></p>"; if (isset($_POST['checkbox2'])) echo "<p><b>Второй</b></p>"; if (isset($_POST['checkbox3'])) echo "<p><b>Третий</b></p>"; echo '<hr size="1">';
if (isset($_POST['radiobutton'])) { echo '<p>Был выбран независимый переключатель со следующим значением: '; if ($_POST['radiobutton']==="yes") echo "<b>Yes</b>"; if ($_POST['radiobutton']==="no") echo "<b>No</b>"; echo '</p>'; } else echo '<p>Ни один из независимых переключателей не был выбран</p>'; echo '<hr size="1">'; echo '<p>Значение многострочного текстового поля :</p>'; echo "<p><b>".$_POST['textarea']."</b></p>"; echo '<hr size="1">'; echo "<p>Значение списка с единственным выбором: <b>".$_POST['day_s']."</b></p>"; echo '<hr size="1">'; echo '<p>Значения списка с множественным выбором: </p>'; foreach ($_POST['day_m'] as $keys=>$values) echo "<b>$values</b><br>"; echo '<hr size="1">'; echo '</body>'; echo '</html>'; ?>
Спасибо за внимание, с Вами был Metro Berlin
[Ссылки могут видеть только зарегистрированные пользователи. ]
Последний раз редактировалось Metro Berlin; 17.08.2012 в 13:25.