Re: QuickForm element group validation question

From: Date: Wed, 04 May 2005 18:08:11 +0000
Subject: Re: QuickForm element group validation question
References: 1  Groups: php.pear.general 
Request: Send a blank email to pear-general+get-19070@lists.php.net to get a copy of this message
On 5/4/05, LJ Wilkinson <lj.wilkinson@comcast.net> wrote: > Hi, > > I have a question about validation when grouping elements in an > HTML_Quickform. Here's the situation: > > I have a quickform that has a subset of elements that are grouped using the > $form->addGroup() method. After the user submits the form, I have a > function that iterates through the values in the $_POST array and uses that > information to construct either an update or insert statement that gets sent > to the db. This function, at present, requires that the values in the > $_POST array are "flat", ie no nested arrays. When you leave out the name > parameter to the addGroup function, it doesn't create nested arrays when > filling out the $_POST array: it's flat, which makes me very happy. > > The problem arises when I try and validate one of the elements in a group.. > The normal addRule() method doesn't appear to work when you simply give it > the grouped element name as a parameter. The addGroupRule() function works > as advertised, but you need to pass it a group name, which means that I have > to give my addGroup() calls a name, which means I no longer have flat $_POST > arrays. When I leave out the group name from the addGroupRule I get a weird > error about not finding HTML_QuickForm_Header::getElementName in > QuickForm.php line 1051. I expect I'm not supposed to do that. > > I'd really rather not make my $_POST iterator function smarter to deal with > nested arrays unless I have to. Does anyone have any suggestions as to how > I can get the look and feel of element groups (an advcheckbox and a text > element side-by-side), allow validation of one of those elements (the text > element), and get a flat $_POST array? > I suggest setting the appendName parameter to false in addGroup(). $form->addGroup($els, 'name', 'label', 'seperator', false); -- Justin Patrin

« previous php.pear.general (#19070) next »