Re: Quickform ElementGrid - how to addRule()

From: Date: Thu, 22 Mar 2007 03:57:24 +0000
Subject: Re: Quickform ElementGrid - how to addRule()
References: 1 2  Groups: php.pear.general 
Request: Send a blank email to pear-general+get-26893@lists.php.net to get a copy of this message
On 3/21/07, Ben <ben@giantsteps.com> wrote:
I am adding a grid of editable 'text' elements to a ElementGrid in HTML_Quickform. I would like to add validation rules ... In the code below (***) I try and use "addRule" to no avail. Any ideas on how to make the validation of each element work? Thanks. { $elementGrid =& $form->addElement('elementGrid', 'elementGrid', $prompt, array('actAsGroup' => true)); foreach($colheadings as $aheading) {
    $elementGrid->addColumnName($aheading);
} $numrows = count($data); // data contains 2 dimenensional array of numbers $numcols = count($colheadings); // echo "addGrid:: numrows=$numrows numcols=$numcols <br>"; for ($i=0; $i<$numrows; $i++) {
    $row = null;
    for($j=0; $j<$numcols; $j++) {
      $itemname = "grid_${name}_${i}_${j}";
      $row[] =& HTML_QuickForm::createElement('text', $itemname,
$itemname, array('size' => 10));
***      $form->addRule($itemname,  "field must be numeric", 'numeric',
null, 'server');
    }
    $gridrows[] = $row;
} $elementGrid->setRows($gridrows); }
Looks like that was one of the things I never tested. Rules on element in an elementGrid are currently not supported (and some quick hacking hasn't shown me a solution). I suggest you try addFormRule() for now. -- Justin Patrin

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