On Sat 23 Jul 2011 04:27:16 AM EST, Bart McLeod wrote:
> Op 22-07-11 17:06, David Mintz schreef:
>> On Thu, Jul 21, 2011 at 5:19 PM, Bart McLeod<mcl...@spaceweb.nl>  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.
>>
>>
> Indeed it sounds like it's going to work and I do not see the crude
> aspect. If the constructor can be used this way it is the strength of
> the architecture that makes this possible. I looked at the issue in the
> tracker and that doesn't sound bad either, although I wonder how it
> would perform with a lot of options.

I had a similar issue where I wanted to include a title attribute for 
each option. Ended up just going the manual rendering route as it gave 
me a lot more control, and as a bonus, doesn't require the gymnastics 
needed to get an array that works with formSelect.

David

-- 
List: fw-general@lists.zend.com
Info: http://framework.zend.com/archives
Unsubscribe: fw-general-unsubscr...@lists.zend.com


Reply via email to