I'll give it a shot. Thanks.

On Feb 18, 4:49 pm, Martino Piccinato <m...@yoolab.com> wrote:
> I think the easisiest way would be making 
> yourhttp://www.symfony-project.org/api/1_2/sfValidatorSchema
> accepting as a first argument the array of the checkbox fields names
> and, in "doClean" method validating that at least one is checked (and
> use this as a post validator). I've never implemented something
> similar so take my words just as "this is the way I'd go" and not as
> "I'm sure this is the best way" :-)
>
> On Wed, Feb 18, 2009 at 2:49 PM, Mark Smith
>
> <marksmith5...@jungle-monkey.com> wrote:
>
> > That is what I tried first, but because my array of checkboxes is
> > dynamic construction of the global validator is quite complicated.
>
> > I'm not even sure if it's possible, the code below was my first
> > attempt, but it doesn't work as I expected.
>
> > Can you let me know if I am on the right path?
>
> > Thanks
>
> >        $validationArray=array();
> >        foreach($this->services as $serviceId => $serviceName)
> >        {
> >            $this->widgetSchema['requiredServices'][$serviceName] =
> > new sfWidgetFormSchema();
> >            $this->validatorSchema['requiredServices'][$serviceName] =
> > new sfValidatorSchema();
>
> >            foreach($this->regions as $regionCode => $regionName)
> >            {
> >                $this->widgetSchema['requiredServices'][$serviceName]
> > [$regionCode] = new sfWidgetFormInputCheckbox(array(),array
> > ('value'=>'true','class'=>'styled'));
> >                $this->validatorSchema['requiredServices']
> > [$serviceName][$regionCode] = new sfValidatorPass();
> >                array_push($validationArray,$this->validatorSchema
> > ['requiredServices'][$serviceName][$regionCode]);
> >            }
> >        }
>
> >        $this->validatorSchema->setPostValidator(new sfValidatorOr
> > ($validationArray),array('required' => true));
>
> > On Feb 18, 12:52 pm, Martino Piccinato <m...@yoolab.com> wrote:
> >> See the paragraph "Global validators" 
> >> inhttp://www.symfony-project.org/book/forms/1_2/en/02-Form-Validation.
>
> >> I think your problem will be better handled by a global validator as
> >> it regards more than one input field.
>
> >> Martino
>
> >> On Wed, Feb 18, 2009 at 1:16 PM, Mark Smith
>
> >> <marksmith5...@jungle-monkey.com> wrote:
>
> >> > I have a dynamic 2d array of checkboxes, and I want to require that at
> >> > least one is selected. Trying to write validation rules for this is
> >> > proving to be excruciatingly difficult.
>
> >> > The only way I could accomplish this is to override the isValid
> >> > function and put in some logic to manually check each box.
>
> >> > It causes the form not to validate, but obviously does nothing to the
> >> > error schema:
>
> >> >    public function isValid()
> >> >    {
> >> >        $result=false;
>
> >> >        foreach($this['requiredServices'] as $service)
> >> >        {
> >> >            foreach($service as $region)
> >> >            {
> >> >                if($region->getValue())
> >> >                {
> >> >                    $result=true;
> >> >                    break;
> >> >                }
> >> >            }
> >> >        }
>
> >> >        return $result && parent::isValid();
> >> >    }
>
> >> > Is there a better way than this?
>
> >> > Thanks
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"symfony users" group.
To post to this group, send email to symfony-users@googlegroups.com
To unsubscribe from this group, send email to 
symfony-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/symfony-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to