PHP 5 для начинающих |
Страница 109 из 813 В сценарии 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'][]. |
ремонт каретки горного велосипеда