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.
>>>
>>
>>
>