-1

我正在为我的表单使用 ci helper form_dropdown 来使用下拉菜单获取所需的输入类型,如文本框、单选按钮等。为此,我在 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');

结果是在编辑期间显示保存的值,但现在不允许更改。我希望既能显示较早选择的值,又能在编辑期间更改值。
我在哪里犯错。提前感谢您的任何帮助/建议和您宝贵的时间。

4

1 回答 1

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();

在我的模型中:

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

如果您多次使用同一个下拉列表,我建议您使用第二个选项。这样,您需要在数据库表中更改一次下拉列表,这将影响所有用法。

于 2012-10-03T05:26:45.053 回答