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