CakePHP label option on input select form not working as expected

11,483

The API doesn't show three parameters to the FormHelper::input method; there is only $fieldName and $options. You probably meant to use the FormHelper::select method instead.

$this->Form->select('plan_detail_id', $plans_list, null, array('label' => 'Select a the Plan Detail', 'empty' => '-- Select a the Plan Detail --'));

Note that the FormHelper::select does not include a wrapping <div> or label. To do so you must pass in something like this..

echo $this->Form->input(
    'plan_detail_id',
    array(
        'options' => $plans_list,
        'type' => 'select',
        'empty' => '-- Select a the Plan Detail --',
        'label' => 'Select a the Plan Detail'
    )
);

This differs from your original attempt in that it moves the $plans_list into the array with the options argument set.

Share:
11,483
OldWest
Author by

OldWest

Updated on June 05, 2022

Comments

  • OldWest
    OldWest almost 2 years

    My select form is working perfectly, but my label will not display no matter the variation or arrangement of arguments.

    Here is my code:

    <?php echo $this->Form->input('plan_detail_id', $plans_list, array(
        'type' => 'select',
        'label' => 'Select a the Plan Detail',
        'empty' => '-- Select a the Plan Detail --'
    )); ?>
    

    As you can see I have a second argument $plan_list which is normally the place for the label tag. For example, all of my other labels like such are OK:

    <td><?php echo $this->Form->input('age_id', array(
        'label' => 'Select an Age Range',
        'empty' => '-- Select an Age Range --'
    )); ?></td>
    

    Note: there is no second $argument like the first example. Am I doing something totally wrong? Or is this not possible or a bug?

  • OldWest
    OldWest about 13 years
    Tried that earlier and it does not work, and the pre-entered select item does not show either : (
  • joebeeson
    joebeeson about 13 years
    Do you mean you get no code to show up? Define "does not work"
  • OldWest
    OldWest about 13 years
    The predefined first select box goes away (from 'empty') and again no label displays above the select box. BUT in my code, the label DOES show in View Source??? Just won't show on the actual UI??
  • joebeeson
    joebeeson about 13 years
    I fixed the answer. I forgot to include the $selected parameter in the query.
  • OldWest
    OldWest about 13 years
    That was my next thought. Thanks. Worked like a charm : )