Codeigniter 在 form_dropdown() 中插入水平线

Codeigniter insert horizontal lines in form_dropdown()

我需要在下拉列表中添加水平线。我已经研究并发现了这种方式:

<select>
    <option>First</option>
    <option disabled>──────────</option>
    <option>Second</option>
    <option>Third</option>
</select>

问题是我使用 Codeigniter form_dropdown() 并且无法在我的代码中插入行。你能帮我在下面的代码中插入水平线吗?

$options = array(
                  ''        => 'Select Size',
                  ''        => '-----------', //does not work
                  'small'   => 'Small Shirt',
                  'med'     => 'Medium Shirt',
                  ''        => '-----------', // does not work
                  'large'   => 'Large Shirt',
                  'xlarge'  => 'Extra Large Shirt',
                );
echo form_dropdown('shirts', $options, 'set_value('shirts')');

检查你的语法。我认为当您 ehco-ing 出实际的表单元素时,您正在混合使用单引号和双引号。此外,选项数组中的最后一项不需要尾随 ,

否则,您的代码看起来 "good"。

php

$options = array(
    '' => 'Select Size',
    '-----------',
    'small' => 'Small',
    'medium' => 'Medium',
    '-----------',
    'large' => 'Large',
    'xlarge' => 'Extra Large'
);

echo form_dropdown('shirts', $options, $this->input->post('shirts'));

编辑

要创建下拉列表以使用选择组:"If the array passed as $options is a multidimensional array, form_dropdown() will produce an with the array key as the label."

$options = array(
    '' => 'Select Size',
    'Children' => array(
        'small' => 'Small',
        'medium' => 'Medium'
    ),
    'Adults' => array(
        'large' => 'Large',
        'xlarge' => 'Extra Large'
    )
);

echo form_dropdown( 'shirts', $options, $this->input->post( 'shirts'));

不过我发现,您的 optgroup 标签必须是唯一的。 "Children"/"Adults" 否则只会渲染最后一组。因此,您可能 运行 需要将数据设为 'child large' 而不仅仅是 'large'.

如果您想在使用 form_dropdown 时使用禁用的选项,您可能必须扩展表单帮助程序库并构建您自己的。否则,您可以只使用普通的旧 HTML 语法。然后你可以在选项上添加disabled="disabled"

希望这对您有所帮助...