我正在尝试使用codeIgniter弄清楚如何在我的下拉列表中添加禁用选项。 CI新手,我试过谷歌搜索,但找不到答案。
我的下拉列表代码如下:
echo form_dropdown('category', array('0' => 'Choose a category...') + $categories, '0');
这给了我一个下拉列表,其中包含变量$ categories中的所有选项,顶部是“选择一个类别...”(值0)。现在我如何禁用第一个?我知道如何让它选择一个特定的,我已经设置它在这里做。
任何人都可以帮助我吗?感谢
答案 0 :(得分:1)
我知道这是一个旧帖子,但在当前版本的CI中,我可以通过将" disabled="disabled
附加到我想要禁用的选项的键来做一些(类似sql注入)技巧
$categories['0'] = '(Select Category)';
$categories['1'] = 'Category 1';
$categories['2" disabled="disabled'] = 'Restricted Category';
$categories['3'] = 'Category 3';
echo form_dropdown('category', $categories, '0');
我不确定这是否是CI的form_helper的错误,因为它没有为下拉键/值执行任何转义或清理功能。同时,为了安全起见,请确保您的密钥和值不会来自任何基于用户的输入。
答案 1 :(得分:0)
如果您仍想使用form_helper,则始终可以扩展帮助文件并使'禁用'标记可用。创建MY_Form_helper.php并将其放在helper目录下,然后在该自定义帮助器中定义函数form_dropdown,然后它将覆盖表单助手行为。
答案 2 :(得分:0)
如果你有一些静态选项,那么$ options变量也可以是一个简单的字符串,包含html格式的选项,如下所示:
$options = "
<option value=0 disabled>Select Category</option>
<option value=1>Category 1</option>
<option value=2>Category 2</option>";
echo form_dropdown('category', $options, '0');
答案 3 :(得分:0)
只需将第四个param $ extra添加到您的下拉列表中,就像“禁用=已停用”这样的字符串,如https://codeigniter.com/user_guide/helpers/form_helper.html#available-functions中的CI文档中所述
echo form_dropdown('category', array('0' => 'Choose a category...') + $categories, '0', 'disabled=disabled');
答案 4 :(得分:0)
<?php echo validation_errors(); ?>
<?php echo form_open(''); ?>
<?php echo form_label('Gender:'); ?>
<?php echo form_dropdown(array('id'=>'selectinform', 'name'=>'gender', 'options'=>array('1'=>'Select', '2'=>'2','3'=>'3'), 'selected'=>'1')); ?>
<?php echo form_submit(array('id'=>'submit', 'value'=>'submit')); ?>
<?php echo form_close(); ?>
<script>
$(document).ready(function(){
$("#selectinform option:first").attr('disabled', 'disabled');
});
</script>
答案 5 :(得分:-1)
来自http://codeigniter.com/user_guide/helpers/form_helper.html的CI用户指南:
如果您希望开头包含其他数据,例如id属性或JavaScript,您可以在第四个参数中将其作为字符串传递:
所以你的代码变成了:
echo form_dropdown('category', array('0' => 'Choose a category...') + $categories, '0', 'disabled="disabled"');
但是,除非您是PHP狂热分子或通过表单助手使用CSRF保护,否则我只需自己输入您的表单html。它的文本数量相同,而且您使用的功能较少。
答案 6 :(得分:-2)
<强>解决方案:强>
更改form_helper.php
的第437个字符串:
这
.(in_array($key, $selected) ? ' selected="selected"' : '').’>'
到
.(in_array($key, $selected) ? ' disabled="disabled"' : '').’>'
并使用selected
功能disabled
。看起来像一个生命危机,但它的工作原理