通常,我总是使用CakePHP表单助手来列出带有选项的下拉选择框。
我想知道,如果我可以手动创建它(我的意思是没有CakePHP表单助手)?
示例:使用cakepp表单助手创建选择框
<?php echo $this->Form->input('product_name',array('options'=>$myoptions));?>
但我想做一些类似以下的事情
<select name="data[Product][product_name]" id="product">
<options value="1">One</options>
<options value="2">Two</options>
<options value="3">Three</options>
</select>
有什么想法吗?谢谢CakePHP 2.5.7
--编辑--
我想克隆将遵循CakePHP表单结构的多选框。
好吧,问题从这里开始。默认情况下,我会使用CakePHP form helper
来绘制选择框及其选项。
我写了这样的代码:
<?php echo $this->Form->input('Redemption.0.type_id',array('class'=>'form-control','id'=>'selectProduct','label'=>false,'empty'=>'Choose Type','options'=>$types));?>
它将以如下HTML结构返回:
<select name="data[Redemption][0][type_id]" class="form-control" id="selectProduct">
<option value="">Choose Type</option>
<option value="1">Toner</option>
<option value="2">Ink Catridge</option>
</select>
我想将上面现有的选择框克隆到新的选择框中,但名称值不同,如下所示:
<select name="data[Redemption][1][type_id]" class="form-control" id="selectProduct">
<option value="">Choose Type</option>
<option value="1">Toner</option>
<option value="2">Ink Catridge</option>
</select>
请注意,name="data[Redemption][1][type_id]"
上的整数值已增加。这就是我想要的。
但现在,我不知道如何在数据发生变化的情况下进行克隆。我已经尝试了几种jquery方法,如.clone().append(),但它不起作用,因为选择框中的选项数据变得多余。
你能告诉我如何在CakePHP中复制/克隆选择框吗?
谢谢。CakePHP 2.5.7
<?php
echo $this->Form->input( 'product_name', array(
'type' => 'select',
'options' => array(
'key1' => 'val1',
'key2' => 'val2',
),
'empty' => true,
));
?>
只需将值添加到变量数组中,就可以将其他条件值添加到选择选项中,如下所示:
$myOptions = array(
'1' => 'One',
'2' => 'Two',
'3' => 'Three'
);
// If user make some action
if($someAjaxAction == true) {
$myOptions[4] = 'Four';
}
echo $this->Form->input('product_name', array('options' => $myOptions));