如何使用codeigniter的form_dropdown帮助器

时间:2012-10-03 04:18:08

标签: forms codeigniter drop-down-menu

我正在使用ci helper form_dropdown为我的表单使用下拉菜单获取所需的输入类型作为文本框,单选按钮等。对于puropse,我在db中使用display_text和multiple_values,其中display_text存储文本框,单选按钮等,而在多个值中,我存储0或1,具体取决于输入是否采用多个值。对于textarea multiple_values = 0和单选按钮multiple_values = 1.现在问题是在我正在进行的控制器编辑期间

$data['field_types'] = dropdown_data($field_types, 'display_text' , 'multiple_values');

当我这样发送时,未选择保存的值,它只选择下拉菜单的第一个值,但允许从控制器中选择新值。当我喜欢时

$data['field_types'] = dropdown_data($field_types, 'display_text');

结果是在编辑期间显示已保存的值,但现在不允许更改。 我想要显示之前选择的值,还能够在编辑期间更改值 在哪里我犯了错误。提前感谢任何帮助/建议和宝贵的时间。

1 个答案:

答案 0 :(得分:0)

第一个选项:

在控制器中:

$data['field_types']=array( 
                           '1' => 'First DropDownItem',
                           '2' => 'Second DropDownItem',
                           '3' => 'Third DropDownItem'
                           );

$data['field_types']['4']='New DropDownItem';
$data['field_types']['0']='New Default_DropDownItem';

在视图中:

<?=form_dropdown('field_types',$field_types,0); ?> // default value will be 'New Default DropDownItem'

数据库的第二个选项(合理的方式):

在控制器中:

$data['field_types_from_model']=$this->my_Model->getFieldTypes();

在my_Model中:

function getFieldTypes() {
  $Q = $this->db->get('table_with_field_types');
  return $Q->result_array();
}

如果您多次使用相同的DropDown List,我建议您使用Second选项。这样,您需要在数据库表中更改一次DropDown List,这将影响所有用法。