Именование полей количества
Раздел страницы заключен в теги <FORM>, так как заказчику дается возможность изменить заказанное количество товара и заново послать форму, чтобы обновить это количество. Для этого необходимо поместить $OrderQuantity для каждого покупаемого объекта в поле формы, как это делается с помощью кода:
<input type="text" name="Q<?php echo $OrderItem ?>" size="2" class="qtybox" value="<?php echo $OrderQuantity ?>">
Ключом к тому, чтобы эта форма правильно работала, является соглашение об именах, используемых для этого поля. Обратим внимание, что этому текстовому полю присваивается имя "Q<?php echo $OrderItem ?>", то есть буква "Q" (которая выбрана просто произвольно), — за ней следует код ($OrderItem) продукта, значение $OrderQuantity которого выводится в этом поле. Если взять в качестве примера корзину покупателя, показанную выше, то именем поля количества первого товара будет "QBU1111", а именем поля для второго товара будет "QOS1111".
Для использования такого способа именования имеются две причины. Прежде всего, мы не знаем, сколько различных полей количества появится в форме. В ней будет столько полей, сколько будет купленных продуктов. Поэтому в отличие от предыдущего опыта с формами, мы не можем заранее определить и назвать эти поля. Во-вторых, мы не можем использовать одно имя для всех полей. Если, например, мы бы назвали поле просто "Quantity", то было бы столько полей Quantity, сколько было бы купленных продуктов. Это могло бы создать реальные, непреодолимые проблемы при попытке определить, какое поле quantity связано с каким продуктом. Поэтому требуется соглашение об именах, которое, первое, позволяет определить по мере необходимости неопределенное число полей количества, и, второе, уникальным образом определяет продукт, связанный с количеством, представленным в этом поле. Текущее соглашение об именах решает обе проблемы достаточно хорошо. Символ "Q" испол ьзуется для идентификации поля количества (важный идентификатор, который будет использоваться ниже), а добавленное OrderItem предоставляет уникальное имя, которое идентифицирует также продукт, связанный с указанным в поле количеством. Мы обсудим ниже, как сценарий сортирует эту информацию для обновления полей количества измененными значениями.