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/

Reply via email to