PHP 5 для начинающих

Печать

В сценарии listbox.php атрибут name связан с PHP-переменной $_POST[Price]:<?php

echo "Диапазон цен:$_POST[Price]";

Здесь пока нет абсолютно ничего нового, однако второй список в listbox.html отличается:

<select name="EngineSize[]" multiple> <option>1.0L</option> <option>1.4L</option> <option>1.6L</option> <option>2.0L</option> </select>

По сути, в данном случае все выглядит так же, как и в предыдущем, кроме первой строки, в которой атрибуту name присваивается значение EngineSize[] . Добавление квадратных скобок ( [] ) в конце имени элемента управления — инструкция для PHP интерпретировать соответствующую переменную как массив.

$Choice0 = $_POST['EngineSize'][0]; $Choice1 = $_POST['EngineSize'][1]; $Choice2 = $_POST['EngineSize'][2]; $Choice3 = $_POST['EngineSize'][3]; echo "<br>Объем двигателя:$Choice0,"; echo "$Choice1,"; echo "$Choice2,"; echo "$Choice3,";

Как уже отмечалось, во время создания массива PHP создает новую переменную с тем же именем и присоединенным к имени индексным номером. В списке содержится четыре пункта, поэтому в массиве будет четыре элемента. Содержимое каждого из них необходимо отобразить. Поскольку индекс ссылается на элемент массива, а нумерация элементов в массивах, как правило, начинается с нуля, $EngineSize[0] ссылается на первый пункт в списке, 1.0L, если этот пункт был выбран пользователем. Этот элемент всегда содержит первый пункт списка, выбранный пользователем на странице.

В рассматриваемом примере выбран первый пункт, поэтому $EngineSize[0] действительно содержит значение 1.0L. То же касается и элемента $EngineSize[1] , связанного со вторым пунктом. Элементы $EngineSize[2] и $EngineSize[3] не содержат ничего, так как пользователь выбрал только два первых пункта списка. Если бы пользователь выбрал только один пункт, то значение хранилось бы только в элементе $EngineSize[0]. Элементы $EngineSize[2] и $EngineSize[3] будут содержать значения только в том случае, когда пользователь выберет все четыре пункта списка. Если бы были выбраны только два последних пункта, то переменные $EngineSize[0] и $EngineSize[1] содержали бы значения 1.6L и 2.0L соответственно, а переменные $EngineSize[2] и $EngineSize[3] вновь не имели бы значений. Для простоты отображения значений с помощью оператора echo для каждого пункта были созданы переменные и им были присвоены строковые значения переменных массива.

Необходимо помнить о том, что если отображение ошибок включено и ошибки видны в окне браузера (в файле php.ini должна быть строка "display_errors = On"), то будут также отображаться некоторые предупреждения о невыбранных значениях EngineSize, так как значения присваиваются не всем переменным $_POST['EngineSize'][].




ремонт каретки горного велосипеда