On Thu, Jul 21, 2011 at 5:19 PM, Bart McLeod <[email protected]> wrote:
> My wild guess is that you should override addMultiOptions in a custom > select element so that you can add the class attribs. > -Bart > > Op 21-07-11 21:49, David Mintz schreef: > > From my googling I see that this has been asked, and there's no really >> easy >> answer, and none of the few answers I found work for my case. >> >> Basically, you have a label, a value and a category signified by the css >> class. I want the output to be something like >> >> <option label="apple" class="fruit" value="1">apple</option> >> <option label="spinach" class="vegetable" value="w">spinach</option> >> <option label="salmon" class="fish" value="1">salmon</option> >> >> And yes, I know there are option groups for organizing OPTION elements >> into >> a hierarchy, but I have my reasons for not wanting to go there. >> >> This will all come from a database. In high-level terms, how would you >> suggest approaching this? What classes/methods would you look into >> overriding? >> >> The purpose is to do fancy tricks using jQuery -- I need to detect the >> "category" on the change event. I can think of ways of hacking around >> this, >> e.g., load a JSON data structure that maps ids to categories and refer to >> that as needed. But... any other ideas? >> > Thanks Bart. I noticed that $helper is a public property of Zend_Form_Element_Select, so rather than extending it, I have started working on a custom view helper instead, whose method signature is the same as that of formSelect in Zend_View_Helper_FormSelect. But the $options array that I am going to pass the Zend_Form_Element_Select constructor won't be like array( 1=> apple, 2 => spinach ), but rather array( array(value=>1,label=>spinach, class=>vegetable ), ... ) Any thoughts about this approach? I know that it's kind of crude to deliberately abuse Zend_Form_Element_Select's constructor and then give it a custom view helper to make up for it, but it looks like it's gonna work. -- David Mintz http://davidmintz.org/ It ain't over: http://www.healthcare-now.org/
