You are right, even with:

public function isChecked()
    {
     $value = $this->getValue();
        if (empty($value)) {
            return true;
        }

        return false;
    }

it behaves wrong on WinXP/FF. Must find the way around this...

Regards,
Saša Stamenković


On Tue, Dec 22, 2009 at 6:11 PM, Hector Virgen <[email protected]> wrote:

> I get a fatal error when I try that:
>
> Fatal error: Can't use method return value in write context in
>> /Users/hvirgen/Web/projects/virgentech/application/controllers/IndexController.php
>> on line 49
>
>
> I swapped it for this test, which is similar to yours:
>
> if (!$this->getValue()) {
>     return true;
> }
>
> return false;
>
> But it always returns true, even if I clicked a different submit button.
> Again, this was testing on Chrome for Mac. Other browsers may behave
> differently.
>
> Do you just need to test if the form was submitted, or if a specific button
> was clicked?
>
> --
> Hector
>
>
>
> On Tue, Dec 22, 2009 at 9:04 AM, Саша Стаменковић <[email protected]>wrote:
>
>> Yes, I need them to be buttons, styling problems, I need sth like:
>>
>> <button id="quick_search_form_submit" class=" ui-corner-all
>> ui-state-default" accesskey="s" type="submit" name="
>> quick_search_form_submit">
>> <span class="ui-icon left ui-icon-search"> </span>
>> Traži
>> </button>
>>
>> And that cannot be done with submit.
>>
>> However, this works for me:
>>
>> public function isChecked()
>>     {
>>         if (empty($this->getValue())) {
>>             return true;
>>         }
>>
>>         return false;
>>     }
>>
>> Regards,
>> Saša Stamenković
>>
>>
>>
>> On Tue, Dec 22, 2009 at 5:50 PM, Hector Virgen <[email protected]>wrote:
>>
>>> My apologies, you're right. I put together a quick test script and
>>> verified that button elements do not always return the correct result when
>>> calling isChecked(). In my test, using Chrome for Mac the button element did
>>> not return a value when submitted, which is required by isChecked().
>>>
>>> However, I don't think this is entirely ZF's fault.
>>>
>>> According to w3schools.com, different browsers return different values
>>> when button elements are clicked.
>>>
>>> Important: If you use the button element in an HTML form, different
>>>> browsers will submit different values. Internet Explorer will submit the
>>>> text between the <button> and </button> tags, while other browsers will
>>>> submit the content of the value attribute. Use the 
>>>> input<http://www.w3schools.com/tags/tag_input.asp> element
>>>> to create buttons in an HTML form.
>>>
>>>
>>> http://www.w3schools.com/tags/tag_button.asp
>>>
>>> <http://www.w3schools.com/tags/tag_button.asp>I suggest following their
>>> recommendation and using input elements instead of buttons, unless you
>>> absolutely need them to be buttons:
>>>
>>> $form->addElement('submit', 'go_submit', array(
>>>     'label' => 'Submit'
>>> ));
>>>
>>> I verified that submit elements do behave as expected when calling
>>> isChecked().
>>>
>>> --
>>> Hector
>>>
>>>
>>> On Mon, Dec 21, 2009 at 11:21 PM, umpirsky <[email protected]> wrote:
>>>
>>>> О.К. I'm using buttons (type="submit").
>>>>
>>>> Does for you this method returns opposite value then expected?
>>>>
>>>> Regards,
>>>> Saša Stamenković
>>>>
>>>>
>>>> On Mon, Dec 21, 2009 at 6:04 PM, Hector Virgen [via Zend Framework
>>>> Community] <[hidden 
>>>> email]<http://n4.nabble.com/user/SendEmail.jtp?type=node&node=976764&i=0>
>>>> > wrote:
>>>>
>>>>> That's because you can have two buttons with the same name but have
>>>>> different values. Only if the value matches will it be considered clicked.
>>>>>
>>>>> Also, with inputs (type=submit), the value and the label are the same
>>>>> thing. To make your button say "OK", its value should be "OK". When the
>>>>> button is clicked, the $_POST data will contain the value "OK" for the
>>>>> button. In ZF, that's why $element->setLabel() affects the value of the
>>>>> submit input.
>>>>>
>>>>> When it's not clicked, there may still be another input (hidden?) that
>>>>> sets the value to an empty string. This is why the label is tested against
>>>>> the value.
>>>>>
>>>>> --
>>>>> Hector
>>>>>
>>>>>
>>>>> On Mon, Dec 21, 2009 at 6:31 AM, umpirsky <[hidden 
>>>>> email]<http://n4.nabble.com/user/SendEmail.jtp?type=node&node=976348&i=0>
>>>>> > wrote:
>>>>>
>>>>>>
>>>>>> Hi.
>>>>>>
>>>>>> For me, isChecked method works only after I set my buttons
>>>>>> (type="submit")
>>>>>> have same value for label and value attribs.
>>>>>> Also, it returns opposite value then expected, false when button is
>>>>>> clicked!
>>>>>>
>>>>>> Lets take a look at buton/submit isChecked method:
>>>>>>
>>>>>> /**
>>>>>>  * Has this submit button been selected?
>>>>>>  *
>>>>>>  * @return bool
>>>>>>  */
>>>>>> public function isChecked()
>>>>>> {
>>>>>>        $value = $this->getValue();
>>>>>>
>>>>>>        if (empty($value)) {
>>>>>>                return false;
>>>>>>        }
>>>>>>        if ($value != $this->getLabel()) {
>>>>>>                return false;
>>>>>>        }
>>>>>>
>>>>>>        return true;
>>>>>> }
>>>>>>
>>>>>> pretty odd, huh? I don't know why it is implemented this way, but I
>>>>>> patched
>>>>>> it to return opposite value, and it works now. Why label and value
>>>>>> need to
>>>>>> have same value at all?
>>>>>>
>>>>>> Anyone with same behaviour?
>>>>>> --
>>>>>> View this message in context:
>>>>>> http://n4.nabble.com/Buttons-and-isChecked-method-tp976255p976255.html
>>>>>> Sent from the Zend Framework mailing list archive at Nabble.com.
>>>>>>
>>>>>
>>>>>
>>>>
>>>> ------------------------------
>>>> View this message in context: Re: [fw-general] Buttons and isChecked
>>>> method<http://n4.nabble.com/Buttons-and-isChecked-method-tp976255p976764.html>
>>>>
>>>> Sent from the Zend Framework mailing list 
>>>> archive<http://n4.nabble.com/Zend-Framework-f634138.html>at Nabble.com.
>>>>
>>>
>>>
>>
>

Reply via email to