1

在视图中:

echo $this->Form->input('Ingredient');

上面填充了 HTML 输出为的多选列表:

<select name="data[Ingredient][Ingredient][]" option="hh" multiple="multiple" id="IngredientIngredient">
<option value="1" selected="selected">Tomato</option>
<option value="2">Spaghetti </option>
<option value="3" selected="selected">Salt</option>
</select>

我需要知道的是如何为生成的<option>标签添加属性?

4

3 回答 3

6

使用控制器传递选定的值:

if ($this->request->is('post') {
    // save form
} else {
    $this->request->data['Incredient']['Incredient'] = $ids;
}

这里

要添加额外的属性,比如类,你只需要使它成为一个更深的数组,你可以传递这些:

$options = array(
    1 => 'One', 
    2 => array('name' => 'Two', 'value' => 2,  'class' => 'extra'), 
    3 => 'Three');

echo $this->Form->input('test', array('type' => 'select', 'options' => $options));

结果:

<div class="input select">
    <label for="ModelTest">Test</label>
    <select name="data[Model][test]" id="ModelTest">
        <option value="1">One</option>
        <option value="2" class="extra">Two</option>
        <option value="3">Three</option>
    </select>
</div>

看到这个

于 2014-03-23T11:13:28.330 回答
1

我在 select, by (CakePHP 2 + VueJs 2) 中的示例自定义标签选项很简单。

<?php
            $options = array(
                array(
                    'value' => false,
                    'v-for' => 'obj in data_options_input_id_vuejs',
                    'name' => '{{obj.text}}',
                    'v-bind:value' => 'obj.value',
                )
            );
            echo $this->Form->input('input_id', array(
                'type' => 'select',
                'required' => true,
                'class' => 'input-block-level',
                'options' => $options,
                'v-model:' => 'productos_stocks_padre_combo_select',
            ));
?>
于 2017-05-04T03:51:35.907 回答
1

向选项添加额外数据

大家好,就我而言,我想将 code="code-value" 添加到我的选择选项中,并且此代码对我有用。如果您想在选项中添加额外数据,请尝试以下代码:

    //In controller 

    $chapters = $this->Course->Chapter->find('all', array('fields' => array('name', 'code', 'id')));

            // Call the noop function $this->noop() on every element of chapters
            $chapters = Hash::map($chapters, "{n}.Chapter", array($this, 'noop'));

// Callback noop function
    function noop($option) {

            $option['value'] = $option['id'];
            unset($option['id']);
            return $option;
        }

您可以在此处查看有关 Hash:map 函数的文档。祝你好运。

于 2017-07-09T15:32:52.587 回答