logo       
Google Custom Search
    AddThis Social Bookmark Button

Re: [QuickForm] How should i use applyFilter(): msg#00211

Subject: Re: [QuickForm] How should i use applyFilter()
le 29/05/02 23:33, Wojciech Gdela à eltehaem@xxxxxxxxxxxxxx a écrit :

> Bertrand Mansion wrote:
> 
>> $form = new HTML QuickForm('frmTest', 'GET');
>> 
>> $form->addElement('text', 'itxtTest', 'Test Text:');
>> $form->addElement('submit', 'submit', 'submit');
>> $form->addRule('itxtTest', 'Test text is required', 'required');
>> $form->applyFilter('__ALL__', 'trim');
>> 
>> if ($form->validate()) {
>> $form->freeze();
>> echo 'Before filter:<pre>';
>> echo $form->getElementValue('itxtTest');
>> echo '</pre>';
>> echo 'After filter:<pre>';
>> var dump($form->_submitValues['itxtTest']);
>> echo '</pre>';
>> }
>> $form->display();
> 
> Aren't variables prepended with underscore (_) marked private?

This is true. My mistake, I took a shortcut.
I usually override the process() method to get submitted values. To do that,
I use this code :

function process() {
    $values = $this->_submitValues;
    while(list($k, $v) = each($values)) {
        if (is_string($val))
            $val = addslashes($val);
        $cleanValues[$key] = $val;
    }
    return $cleanValues;
}

> Also when i type into text field "Foo'Bla" i will get (because of
> magic_quotes_gpc setting):

In your case, (use of magic_quotes_gpc is not recommended anyway), you can
remove the slashes by using stripslashes instead of addslashes in the above
code.

> echo $form->_submitValues['itxtTest']; // == Foo\'Bla
> 
> and (because of stripslashes along the code):
> 
> echo $form->getElementValue('itxtTest'); // == Foo'Bla
> 
> I like the second one.

Using or not magic_quotes_gpc is user's choice so we won't deal with this
issue. _submitValues contains the submitted values after they have been
filtered. getElementValue returns the value of the element as it was
submitted by the form before being filtered. I think this distinction can be
useful. So I would consider keeping it if you don't mind.

But I think we miss a method to access the submitted and filtered values.
What do you think of a getSubmitValue($elementName) method ? Or maybe just
add a parameter to getElementValue to say if we want the value before or
after it has been filtered, with default being after ?
Option 2 is better IMO.

Still, note that the process() method is here to do the job.

Thanks for your feedback,

Bertrand Mansion
Mamasam



--
PEAR General Mailing List (http://pear.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php





Try Searching:
servers, voip, java, networking, microsoft ...
<Prev in Thread] Current Thread [Next in Thread>