CakePHP正常输入框预先填充但不是选择框?

时间:2014-01-30 15:38:28

标签: html cakephp drop-down-menu auto-populate

我正在使用Cake的表单助手,当我将$ this-> request->数据设置为我的控制器中的某些内容时,它应该预先填充。它预先填充正常类型=" text"输入框,但不是类型="选择"。谁知道为什么?

如果我在我的视图中pr($ this-> request-> data),我会得到以下结果:

Array
(
  [EventInvoiceHardsurface] => Array
    (
        [id] => 7868
        [expediting_notes] => Fake expiditing notes
        [installation_notes] => Fake installation notes.  
    )

  [PurchasingProduct] => Array
    (
        [style_number] => BDP
        [style_name] => DUNDEE PLANK 3 1/4
    )

  [PurchasingProductColor] => Array
    (
        [name] => CB1230 SEASHELL
    )

)

这不会预先填充

                            <?=$this->Form->input('PurchasingProductColor.name', array('type' => 'select', 'label' => 'Product Color', 'div' => false, 'placeholder' => 'Color Name', 'class' => 'input-medium', 'disabled' => 'disabled', 'empty' => true));?>

但这就是

                            <?=$this->Form->input('PurchasingProductColor.name', array('type' => 'text', 'label' => 'Product Color', 'div' => false, 'placeholder' => 'Color Name', 'class' => 'input-medium', 'disabled' => 'disabled', 'empty' => true));?>

我已经尝试删除空的&#39; =&GT; true并删除占位符并删除禁用,但这些都没有任何区别。

任何想法的家伙?谢谢。

编辑:

我最终使用了这个。

                            <?=$this->Form->input('PurchasingProductColor.name', array('type' => 'select', 'label' => 'Product Color', 'div' => false, 'placeholder' => 'Color Name', 'class' => 'input-medium', 'options' => array((!empty($this->request->data['PurchasingProductColor']['id']) ? $this->request->data['PurchasingProductColor']['id'] : '') => (!empty($this->request->data['PurchasingProductColor']['name']) ? $this->request->data['PurchasingProductColor']['name'] : ''))));?>

我输了空=&gt;真正的功能和禁用的功能,但我将通过JavaScript控制这些功能。

感谢。

1 个答案:

答案 0 :(得分:0)

您必须提供选项

<?=$this->Form->input('PurchasingProductColor.name', 
array('type' => 'select', 'label' => 'Product Color', 'div' => false, 
'placeholder' => 'Color Name', 'class' => 'input-medium', 
'disabled' => 'disabled', 'empty' => true,'options'=>$optionsList));?>

$ optionsList是选择框的选项列表,然后它将预先选择您的特定选择。