Конспект по начертательной
геометрии
Начертательная геометрия
Практикум решения задач
Геометрические основы
Инженерная графика
ЕСКД
Каталог графических примеров
Архитектура ЭВМ
Информатика и
информационные технологии
Конспект лекций по ядерной физике
ТОЭ
Физические законы механики
Волны оптика
Электротехника
Общая электротехника
Решение задач по
электротехнике
Язык программирования
MATLAB
Расчет электрических цепей
Моделирование цепей
переменного тока
Дифференциальные уравнения
Вычислительныe системы
Вычислительные комплексы
Электротехнические материалы
Теория конструктивных
материалов
Учебник PHP
Турбо Паскаль
Встроенный ассемблер
Turbo Vision
Java
Примеры программирования
на Java
Примеры скриптов
История искусства 18-19 век

До настоящего момента я программировал все формы вручную. Любому программисту известно, что ручное кодирование - это плохо, поскольку оно увеличивает вероятность ошибок, не говоря уже о лишних затратах времени.

В следующем разделе я представлю сценарий, в котором раскрывающийся список строится динамически по содержимому массива. Этот прием несложен, однако

он экономит немало времени как при исходном программировании, так и при последующем сопровождении программы.

Пример 7: построение раскрывающегося списка

Предположим, у вас имеется список сайтов, которые вы хотите порекомендовать посетителю из-за классного дизайна. Вместо того чтобы жестко кодировать каждую строку списка, можно создать массив и воспользоваться его содержимым для заполнения списка.

В листинге 10.9, как и в предыдущих примерах, реализован вариант с одним сценарием. Сначала мы проверяем, было ли присвоено значение переменной $site. Если проверка дает положительный результат, вызывается функция header( ) с параметром, в котором значение $site присоединяется к строке . При передаче этой команды функция header О перенаправляет браузер на указанный URL. Если значение переменной $site не задано, форма выводится в браузере. Раскрывающийся список строится в цикле, количество итераций зависит от размера массива Sfavsites. В листинге 10.9 я включил в этот массив пять своих любимых сайтов. Конечно, вы можете добавить в него сколько угодно своих сайтов.

Запомните одно важное обстоятельство - функция header( ) должна вызываться до вывода данных в браузере. Ее нельзя просто вызвать в любой точке сценария РНР. Несвоевременные вызовы header( ) порождают столько проблем у неопытных программистов РНР, что я рекомендую повторить это правило раз пять, чтобы лучше запомнить его.

Листинг 10.9. Динамическое построение раскрывающегося списка

<?

if ($site != "") :

header("Location: http://Ssite");

exit;

else :

?>

<html>

<head>

<title>Listing 10-9</Fit1e>

</head>

<body bgcolor="#ffffff" text="#000000" Iink="#cbda74" vlink="#808040" alink="#808040"

$favsites = array ("www.k10k.com". "www.yahoo.com",

"www.drudgereport.com",

"www.phprecipes.com",

"www.frogdesign.com"):

// Создать форму

<?

<form action = "Listing10-9.php" method="post">

<select name="site">

<option value = "">Choose a site:

$х = 0:

while ( $х < sizeof ($favsites) ) :

print "<option value='$favsites[$x]'>$favsites[$x]";

$x++;

endwhile;

?>

</select>

<input type="submit" value="go!">

</form>

<?

endif;

?>

Динамическое конструирование форм особенно удобно при обработке больших объемов данных, которые в любой момент могут измениться, что приведет к устареванию всей жестко закодированной информации форм. Впрочем, я рекомендую жестко кодировать все статические данные (например, список штатов США), поскольку это ускорит работу программы.

Начертательная геометрия и инженерная графика, перспектива