有人知道如何将类添加到视图文件中的选择选项吗?
我现在有:
DATE
我所有的选项元素都是这样的:
echo $this->Form->input(
'shelf_id',
array(
'options' => $Shelves,
'label'=> 'Etagère :',
'default' => $Place['Place']['shelf_id'],
'class'=>'form-control')
);
但我希望他们是这样的:
<option value="1">Element</option>
选项类的值应该是每个货架的id,但我现在拥有的是:
<option value="1" class="myClass">Etagere 1</option>
但是我希望class =“...”带有每个shelve id的id。
答案 0 :(得分:2)
我不相信Cake提供了一种向单个<option>
标记添加类的简单方法。
您可以使用Html::tag()
自行构建选项,记住要考虑selected
选项。例如,您可以执行以下操作: -
<select>
<?php
// Work out what the selected value is (falling back on a default)
$selected = !empty($this->request->data['Place']['shelf_id']) ? $this->request->data['Place']['shelf_id'] : $Place['Place']['shelf_id'];
// Generate the <option> tags
foreach ($Shelves as $key => $val) {
echo $this->Html->tag(
'option',
$val,
array(
'class' => 'myClass',
'value' => $key
'selected' => $selected === $key ? 'selected' : null
)
)
}
?>
</select>
您需要在<select>
标记上添加正确的属性,并为此添加标签。您应该能够通过查看问题中代码生成的标记来查看这些内容。
<强>更新强>
要使<option>
代码类与其值相同,只需将$key
传递给class
属性: -
foreach ($Shelves as $key => $val) {
echo $this->Html->tag(
'option',
$val,
array(
'class' => $key,
'value' => $key
'selected' => $selected === $key ? 'selected' : null
)
)
}
答案 1 :(得分:0)
像这样创建你的$Shelves
数组
$Shelves = array(
array('value' => 1, 'name' => 'first option', 'class' => 1),
array('value' => 2, 'name' => 'second option', 'class' => 2),
array('value' => 3, 'name' => 'third option', 'class' => 3)
);
请参阅此link
答案 2 :(得分:0)
'arilia'所指的方法似乎不再适用。我按照描述准备了一个数组,但是没有填充类属性,该值是所有数组值的串联,即使用此方法:
echo $this->Form->input('input_id', ['options' => $inputArray, 'empty' => true]);
相反,我手动生成了HTML:
echo '<label for="input-id">Input</label>';
echo '<select id="input-id" name="input_id" required="required">';
echo '<option value="" data-attribute=""> </option>';
foreach($inputArray as $inputRow){
echo '<option value="'.$inputRow['value'].'" data-attribute="'.$inputRow['data-attribute'].'">'.$inputRow['data'].'</option>';
}
echo '</select>';