I would not necessarily call it broken. Here is how to get what you need:

// Start code

$form = new Zend_Form();

$my_select_field_options = array(
        '1'             => '1 fish',
        '2'             => '2 fish',
        'red'   => 'red fish',
        'blue'  => 'blue fish',
);
                
$my_select_field = $form->addElement('select', 'my_select_field')
        ->getElement('my_select_field')
        ->addMultiOptions($my_select_field_options)
        ->setIsArray(false)
        ->setValue('red')
        ->setLabel('My Select Field Label');

echo '<br />' . $my_select_field;
        
$my_select_array_field = $form->addElement('select', 'my_select_field')
        ->getElement('my_select_field')
        ->addMultiOptions($my_select_field_options)
        ->setIsArray(true)
        ->setValue('blue')
        ->setLabel('My Select Array Field Label');

echo '<br />' . $my_select_array_field;

$my_multi_field = $form->addElement('multiselect', 'my_multi_field')
        ->getElement('my_select_field')
        ->addMultiOptions($my_select_field_options)
        ->setIsArray(true)
        ->setValue('red')
        ->setLabel('My Multi Field Label');

echo '<br />' . $my_multi_field;

// End Code

<!-- Start Output -->

<br /><dt><label for="my_select_field" class="optional">My Select Field
Label</label></dt>
<dd>
<select name="my_select_field" id="my_select_field">
    <option value="1" label="1 fish">1 fish</option>
    <option value="2" label="2 fish">2 fish</option>
    <option value="red" label="red fish" selected="selected">red
fish</option>
    <option value="blue" label="blue fish">blue fish</option>

</select></dd><br /><dt><label for="my_select_field" class="optional">My
Select Array Field Label</label></dt>
<dd>
<select name="my_select_field[]" id="my_select_field" multiple="multiple">
    <option value="1" label="1 fish">1 fish</option>
    <option value="2" label="2 fish">2 fish</option>
    <option value="red" label="red fish">red fish</option>
    <option value="blue" label="blue fish" selected="selected">blue
fish</option>
</select></dd><br /><dt><label for="my_select_field" class="optional">My
Multi Field Label</label></dt>

<dd>
<select name="my_select_field[]" id="my_select_field" multiple="multiple">
    <option value="1" label="1 fish">1 fish</option>
    <option value="2" label="2 fish">2 fish</option>
    <option value="red" label="red fish" selected="selected">red
fish</option>
    <option value="blue" label="blue fish">blue fish</option>
</select></dd>

<!-- End Output -->


mrolli wrote:
> 
> 
> Jeffrey Sambells-2 wrote:
>> 
>> The problem however is that for some reason it renders as a multi  
>> select (with multiple="multiple"):
>> 
> 
> Same problem here:
> 
> example1
>         $location_id = new Zend_Form_Element_Select('location_id');
>         $location_id->setLabel('ticket_locations')
>                     ->setRequired(true)
>                     ->addMultiOption('', null);
> 
> example2
>         $location_id = new Zend_Form_Element_Multiselect('location_id');
>         $location_id->setLabel('ticket_locations')
>                     ->setRequired(true)
>                     ->addMultiOption('', null);
> 
> Both render as <select name="location_id[]" multiple="multiple" .../>
> whereas the former schould render as <select name="location_id" .../>
> without the multiple attribute.
> 
> This is a new bug I think because this once worked like a charm but since
> about a week (without changing my code) the HEAD seems broken.
> 
> Regard Michael
> 

-- 
View this message in context: 
http://www.nabble.com/Zend_Form-select-element-always-multi--tp15889624s16154p15891093.html
Sent from the Zend Framework mailing list archive at Nabble.com.

Reply via email to