Maybe...this is really useful feature, and should be fixed together with
multi page forms. Btw, I implemented multi page form helper which actually
works, if someone is interested, I can share.

Regards,
Saša Stamenković


On Wed, Dec 23, 2009 at 6:00 PM, Hector Virgen <[email protected]> wrote:

> That's an "improvement" request, which has already been completed. Maybe a
> new bug should be opened just for this case (button elements).
>
> --
> Hector
>
>
>
> On Wed, Dec 23, 2009 at 8:42 AM, Саша Стаменковић <[email protected]>wrote:
>
>> This works for me, and for buttons type="submit", not tested in safari,
>> so, I'm not sure my solution is generic.
>>
>> There is a issue http://framework.zend.com/issues/browse/ZF-2465, and
>> there is my comment at the bottom 29/Nov/09 01:00 AM, but still no
>> response :(
>>
>> Regards,
>> Saša Stamenković
>>
>>
>>
>> On Wed, Dec 23, 2009 at 5:29 PM, Hector Virgen <[email protected]>wrote:
>>
>>> Looks good! Have you filed a bug report for this?
>>>
>>> --
>>> Hector
>>>
>>>
>>>
>>> On Wed, Dec 23, 2009 at 4:28 AM, Саша Стаменковић <[email protected]>wrote:
>>>
>>>> O.K. This is better:
>>>>
>>>> public function isChecked()
>>>>     {
>>>>      $value = $this->getValue();
>>>>         if (null === $value) {
>>>>             return false;
>>>>         }
>>>>
>>>>         return true;
>>>>     }
>>>>
>>>> Regards,
>>>> Saša Stamenković
>>>>
>>>>
>>>>
>>>> On Wed, Dec 23, 2009 at 12:04 AM, Саша Стаменковић 
>>>> <[email protected]>wrote:
>>>>
>>>>> I need to find out exactly which button is clicked, because I have
>>>>> wizard with multi page form and on each step I have back and forward 
>>>>> button.
>>>>>
>>>>> Regards,
>>>>> Saša Stamenković
>>>>>
>>>>>
>>>>>
>>>>> On Wed, Dec 23, 2009 at 12:02 AM, Саша Стаменковић <[email protected]
>>>>> > wrote:
>>>>>
>>>>>> 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