Введение в программирование на PHP5


Итерации по отправленной форме


Когда пользователь изменяет значение количества одного или нескольких продуктов и щелкает на кнопке "Update" для отправки формы, то информация снова передается на страницу shopcart.php. Страница shopcart.php содержит сценарий для обновления этих изменений в таблице ShopCart. Этот сценарий находится в начале страницы для перехвата изменений, когда посылается форма.

Назначение этого сценария состоит в обновлении таблицы ShopCart значениями количества продуктов, переданных из формы. Мы знаем, что имеется неопределенное число полей количества, имя каждого из которых начинается с буквы "Q", и мы знаем, что значения формы, приходящие на страницу, могут быть в любом порядке.

До сих пор мы всегда знали имена и номера полей на формах. Это связано с тем, что мы проектировали формы, именовали поля и определяли, сколько будет полей. Но здесь это не так. Мы не знаем, сколько имеется полей (это зависит от того, сколько объектов имеется в корзине покупателя), и мы не знаем их имен (за исключением того, что они начинаются с буквы "Q"). Поэтому мы не можем выполнить обработку формы, как это делалось ранее.

Однако с помощью PHP можно решить эту проблему. Можно выполнить итерации по всем элементам $_REQUEST, чтобы определить имена отправленных полей и соответствующие значения. Это реализуется с помощью специального оператора цикла For Each...Next, общая структура которого применительно к формам имеет следующий вид:

foreach($_REQUEST as $key => $value)

где $_REQUEST является ассоциативным массивом, содержащим все пары имя/значение для элементов управления формы на странице. Этот цикл выполняется для каждой пары имя/значение, присланной из формы. На каждой итерации переменная $key содержит имя из пары имя/значение, а $value указывает на значение, связанное с этим именем. Массив имеет следующий формат $_REQUEST[$key] = $value для каждой пары имя/значение, связанной с формой.

Затем можно использовать эту итерационную структуру для просмотра присланных позиций для обновления корзины покупателя и определения имен полей и значений. Когда встречается поле с именем, начинающимся с буквы "Q", то мы знаем, что это поле количества, содержащее значение для обновления таблицы ShopCart. Мы можем также определить из названия продукт, для которого задано значение количества.




Начало  Назад  Вперед



Книжный магазин