On Sat, Jun 25, 2011 at 10:39 AM, Jurian Sluiman <subscr...@juriansluiman.nl
> wrote:

> On Friday 24 Jun 2011 16:30:18 David Mintz wrote:
> > On Thu, Jun 23, 2011 at 3:31 PM, James Ganong <james.gan...@gmail.com
> >wrote:
> > Don't know if this is considered the best of practices, but sometimes in
> my
> > Zend_Form's init(), I examine the request parameters by going
> > Zend_Controller_Front::getInstance()->getRequest() and apply validation
> > logic depending on who they are and what they are trying to do.
> >
> > In your case it seems like you could add as many elements (and their
> > validators and filters) as you need and no more by doing something like
> > that.
>
> I'd rather override Zend_Form::isValid() in that case where for example,
> based
> on a checkbox a set of form elements becomes required:
>
> class MyForm extends Zend_Form
> {
>  public function isValid($data)
>  {
>    if (isset($data['shipping']) && (bool) $data['shipping'] === true) {
>      $this->getElement('shipping-address')->setRequired();
>    }
>    return parent::isValid($data);
>  }
> }
>
> Then you keep you logic within the validation steps and not affecting the
> form
> instantiation.
>
>
I like that. But how about the scenario where you're creating 1 or more
elements client-side that did not exist when the form was first displayed.
Let's say it's a family membership form for a zoo and the parent's contact
data is required, but you want first name, last name, age for zero or more
children, and your form/javascript allows them to add new elements as
needed. What's the best practice for that?

-- 
David Mintz
http://davidmintz.org/
It ain't over:
http://www.healthcare-now.org/

Reply via email to