parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

задача - передать одно поле для нескольких объектов

Азат Разетдинов 09.04.2007 11:21

Задача: т. к. список товаров заведомо ограничен (примерно 10 наименований), нужно вывести их список с возможностью указать количество каждого товара.
я бы назвал их так: quantity_${product_id}
Я их так и называю (ну или почти так):
в форме передаются поля quantity#, где # равен product_id
Проблема в том, как эти поля обрабатывать на сервере. Приходится фильтровать поля формы на наличие quantity, потом выделять оттуда product_id. Мне эта операция показалась "грязной", поэтому я выделил её в отдельный оператор. Теперь поля называются quantity.$product_id.

Мне кажется, было бы удобно, если бы парсер автоматически помещал поля формы, содержащие точку, в $form:hashes. Вряд ли кто захочет просто так передать поле с точкой в имени. А если и захочет, то сможет получить его в двух видах: $form:[quantity.12] и $form:hashes.quantity.12. Плюс в том, что в последнем случае он сможет сделать ^form:hashes.quantity.foreach[] и получить все переданные значения. В то время как в первом случае приходится разбирать имена полей вручную.

Задача стоит шире: передать в форме изменяемое поле для нескольких объектов и _удобно_ обработать его на сервере.