parser

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

 

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

Получение хешей из $form

Азат Разетдинов 08.04.2007 13:25 / 08.04.2007 13:26

В некоторых случаях бывает необходимо получить из формы хеш. Например, когда покупатель заполняет количество заказываемых товаров из списка, в форме передаются поля quantity#, где # равен product_id. Для обработки полученных полей простой перебор в данном случае явно не подойдёт.

Misha v.3 как-то предлагал ввести $form:hashes, но идея не получила развития. Как было бы лучше называть поля? quantity[#] - по аналогии с PHP, или quantity.# - в соответствии с синтаксисом hash? Второй вариант мне нравится больше. Тем более, в отличие от пхпшного, он соответствует спецификации.

Пока же я использую следующий метод:
@getFormHashes[][sName;sValue;tMatch]
$result[^hash::create[]]
^form:fields.foreach[sName;sValue]{
	$tMatch[^sName.match[^^(.+)\.(.+)^$]]
	^if($tMatch){
		^if(!$result.[$tMatch.1]){
			$result.[$tMatch.1][^hash::create[]]
		}
		$result.[$tMatch.1].[$tMatch.2][$sValue]
	}
}
#end @getFormHashes[]