Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Все данные, которые вы хотите получить из HTML-формы в PHP сценарий обрабатываются с помощью суперглобальных массивов $_POST или $_GET, в зависимости от указанного в атрибуте method метода передачи данных.
Задача: Вам необходимо получить данные из текстового поля и многострочного поля ввода и передать их сценарию.
Решение: Необходимо создать HTML форму и PHP – сценарий для обработки формы.
Обсуждение:
Создадим два файла: form.html и action.php. В файле form.html будет содержаться html-форма с текстовым полем mytext и текстовой областью msg:
<form action="action.php" name="myform" method="post">
<input type="text" name="mytext" size="50">
<textarea name="msg" cols="20" rows=”10” ></textarea>
<input name="Submit" type=submit value="Отправить данные">
</form>
В этой html-форме нас интересует 3 атрибута: action который указывает путь к обработчику формы, имя текстового поля (mytext) и имя многострочного поля вода (msg). Также в форме присутствует кнопка, при нажатии на которую происходит передача данных.
После того как html-форма готова нам необходимо создать обработчик формы action.php:
<?php
$text = $_POST['mytext'];
$msg = $_POST['mytext'];
echo $text;
echo "";
echo $msg;
?>
После того как мы введем любые значение в текстовые поля и нажмем на кнопку "Отправить данные" html-форма отправить значения сценарию action.php.
После этого в переменных $text и $msg будут содержаться значения текстового поля и многострочного поля ввода соответственно, значения которых взяты из суперглобальных переменных $_POST.
Если вы хотите, чтобы в многострочном текстовом поле соблюдалось html-форматирование, то используйте функцию nl2br():
<?php
$text = nl2br($_POST['mytext']);
?>
Задача: Пусть необходимо создать выпадающий список с годами с 2000 по 2050.
Решение: Необходимо создать HTML форму c элементом SELECT и PHP – сценарий для обработки формы.
Обсуждение:
Для начала создадим два файла: form.html и action.php. В файле form.html будет содержаться html-форма с выпадающим списком. Причем значения в списке можно указать двумя способами:
I. Ввод данных вручную:
<select class="input" type=text name=years>
<option value='2000'>2000</option>
<option value='2001'>2001</option>
<option value='2002'>2002</option>
……………………………………………
<option value='2050'>2050</option>
</select>
II. Ввод данных через цикл:
<select class="input" type=text name=years>
<?php
$year = 2000;
for ($i = 0; $i <= 50; $i++) // Цикл от 0 до 50
{
$new_years = $year + $i; // Формируем новое значение
echo '<option value='.$new_years.'>'.$new_years.'</option>'; //Формируем новую строчку
}
?>
</select>
Как видно, второй пример с циклом, более компактный. Думаю, не стоит приводить скрипт обработчика данной формы, потому что он обрабатывается точно так же как текстовое поле, т.е. значения списка можно извлечь из суперглобального массива $_POST.
Задача: Загрузка файла на сервер
<FORM ENCTYPE="multipart/form-data" ACTION="action.php" METHOD=POST>
<INPUT NAME="myfile" TYPE="file">
<INPUT TYPE="submit" value="Передать файл">
</FORM>
В данной html-форме присутствует элемент browse, который открывает диалоговое окно для выбора файла для загрузки на сервер. При нажатии на кнопку "Передать файл", файл передается сценарию-обработчику.
Затем необходимо написать сценарий обработчик action.php. Перед написанием обработчика необходимо определиться в какой каталог мы будет копировать файл:
<?php
if(isset($_FILES["myfile"])) // Если файл существует
{
$catalog = "../image/"; // Наш каталог
if (is_dir($catalog)) // Если такой каталог есть
{
$myfile = $_FILES["myfile"]["tmp_name"]; // Времменый файл
$myfile_name = $_FILES["myfile"]["name"]; // Имя файла
if(!copy($myfile, $catalog)) echo 'Ошибка при копировании файла '.$myfile_name // Если неудалось скопировать файл
}
else mkdir('../image/');
// Если такого каталога нет, то мы его создадим
}
?>
Данный пример демонстрирует создание каталога и копирование файла в этот каталог на сервер.
Элемент checkbox отличается от других элементов тем, что если не один из элементов checkbox’a не выбран, то суперглобальная переменная $_POST вернет пустое значение:
<form action="file.php" method=post>
<input name="mycolor" type="checkbox" value="blue">Синий
<input name="mycolor" type="checkbox" value="black">Черный
<input name="mycolor" type="checkbox" value="white">Белый
<input name="Submit" type=submit value="Выбрать">
</form>
<?php
if (!empty($_POST['mycolor'])) echo $_POST['mycolor']; // Если выбран хоть 1 элемент
else echo "Выберите значение";
?>
Более сложные переменные формы
<?php//form5.php
if (isset($_POST['action']) && $_POST['action'] == 'submitted') {
echo '<pre>';
print_r($_POST);
echo '<a href="'. $_SERVER['PHP_SELF'].
'">Попробуйте еще раз</a>';
echo '</pre>';
} else {
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
Имя: <input type="text" name="personal[name]" /><br />
Email: <input type="text" name="personal[email]" /><br />
Пиво: <br />
<select multiple name="beer[]">
<option value="аливария">аливария</option>
<option value="криница">криница</option>
<option value="речицкое">речицкое</option>
</select><br />
<input type="hidden" name="action" value="submitted" />
<input type="submit" name="submit" value="Go!" />
</form>
<?php
}
?>
После выполнения PHP получим следующую страницу HTML
<form action="/myphp/form5.php" method="post">
Имя: <input type="text" name="personal[name]" /><br />
Email: <input type="text" name="personal[email]" /><br />
Пиво: <br />
<select multiple name="beer[]">
<option value="аливария">аливария</option>
<option value="криница">криница</option>
<option value="речицкое">речицкое</option>
</select><br />
<input type="hidden" name="action" value="submitted" />
<input type="submit" name="submit" value="Go!" />
</form>
Результат:
Array
(
[personal] => Array
(
[name] => val
[email] => rom
)
[action] => submitted
[submit] => Go!
)
Попробуйте еще разПри отправке формы вместо стандартной кнопки можно использовать изображение с помощью тега такого вида: <input type="image" src="image.gif" name="sub" />. Когда пользователь щелкнет где-нибудь на изображении, соответствующая форма будет передана на сервер с двумя дополнительными переменными - sub_x и sub_y. Они содержат координаты нажатия пользователя на изображение. Рассмотрим пример:
<html><head>
<title>Simpleform.html </title>
</head>
<body>
<form action="form.php" method="GET">
Имя:<input type="text" name="fio"><p>
<input type="image" src="image.gif" name="sub" />
</form>
</body>
</html>
<?php //form.php
$fio=$_GET['fio'];
echo "Hello, $fio<br>";
print_r ($_GET);
?>
Hello,valera
Array ([fio] => valera [sub_x] => 83 [sub_y] => 64)
Дата публикования: 2014-11-18; Прочитано: 519 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!