Назад | Начало урока | Вперед
Содержание

Глава 23

Заказать тур
Нажав на ссылку "Заказать тур" пользователь попадает на страницу для заказа тура order.php :

Подсказка

В следующем листинге дан код формы, заполняемой при заказе тура.
Метод info() класса tour выводит информацию о выбранном туре.

Листинг 23.3 order.php - форма заказа тура


<?php
// Автозагрузка класса
function __autoload($class) {
// Подключение файла с именем "class_имя_класса.php"
include("class_" . $class . ".php");
}
$page= new hat_foot;
$page->hat();
$tour_id=$_GET['id'];

$tur= new tour();
$tur->info($tour_id);
$tur->connect_close();

?>

<form method="POST" action="process_order.php">

<table>

<tr>
<td>Фамилия: </td>
<td><input type="text" name="fname"></td>
</tr><tr>
<td>Имя: </td>
<td><input type="text" name="name"></td>
</tr><tr>
<td>Отчество: </td>
<td><input type="text" name="sname"></td>
</tr><tr>
<td>Адрес: </td>
<td><input type="text" name="ad"></td>
</tr><tr>
<td>Паспортные данные: </td>
<td><input type="text" name="pas"></td>
</tr><tr>
<td>Количество заказываемых мест: </td>
<td><input type="text" name="many"></td>
</tr><tr>
<td>Место в номере: </td>
<td><input type="radio" name="room" value="dbl">dbl
<input type="radio" name="room" value="sngl">sngl
</td>
</tr>
</table>

<input type="hidden" name="tour_id" value="<? echo $tour_id; ?>">

<input type="submit" value="Заказать">
</form>

<?php

$page->footer();
?>
</body>
</html>

Анализ:

Метод info() класса tour выводит информацию о выбранном туре.
Напоминаю этот метод:

/*
Вывод названия отеля и даты начала тура
*/
function info($tour_id) {

$query="SELECT t.startdate, h.name FROM tours as t, hotels as h
WHERE t.id=$tour_id AND t.hotel=h.id AND t.id=\"$tour_id\"";

if ($result = $this->connection->query ($query)) {

while ($row = $result->fetch_assoc() ) {
echo "<p>Отель: ". $row['name']." Дата начала тура: ".$row['startdate']."</p>";
}
}
}

Далее идет таблица с формами для заполнения данных.

В браузер страница будет послана такой:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0031)http://localhost/order.php?id=3 -->
<HTML><HEAD><TITLE>Магазин путешествий</TITLE>
<META http-equiv=Content-Type content="text/html; charset=windows-1251">
<META content="MSHTML 6.00.2900.2523" name=GENERATOR></HEAD>
<BODY>
<DIV align=right>
<IMG height=50 src="order_php.files/title.gif" width=300></DIV>
<P>Отель: Националь Дата начала тура: 2009-09-03</P>
<FORM action=process_order.php method=post>
<TABLE>
<TBODY>
<TR>
<TD>Фамилия: </TD>
<TD><INPUT name=fname></TD></TR>
<TR>
<TD>Имя: </TD>
<TD><INPUT name=name></TD></TR>
<TR>
<TD>Отчество: </TD>
<TD><INPUT name=sname></TD></TR>
<TR>
<TD>Адрес: </TD>
<TD><INPUT name=ad></TD></TR>
<TR>
<TD>Паспортные данные: </TD>
<TD><INPUT name=pas></TD></TR>
<TR>
<TD>Количество заказываемых мест: </TD>
<TD><INPUT name=many></TD></TR>
<TR>
<TD>Место в номере: </TD>
<TD><INPUT type=radio value=dbl name=room>dbl
<INPUT type=radio value=sngl name=room>sngl </TD></TR></TBODY> </TABLE>

<INPUT type=hidden value="<? echo $tour_id; ?>" name=tour_id>
<INPUT type=submit value=Заказать> </FORM><P>

<IMG height=40 src="order_php.files/footer.gif" width=400></P>
</BODY></HTML>


Здесь на странице почти тот же код, что и в скрипте, за исключением php-кода,
вместо которого сервер вернул результат предварительно обработав php-код.

Если пользователь заполнил поля формы и нажал на кнопку "Заказать",
то он попадет на страницу process_order.php - оформление заказа


Назад | Начало урока | Вверх | Вперед
Содержание

Hosted by uCoz