2010-12-02 101 views
5

Im CodeIgniter中的form_dropdown函数存在一些问题....我的应用程序分为2部分,用户进入,输入表单并提交它...一旦提交管理员可以进入并编辑该人员表格,然后将其保存到数据库。代码点火器 - form_dropdown从数据库中选择正确的值

因此,要显示在初始形式中,下拉列表中,使用下列IM(在下拉的所有选项从数据库中推出)

型号:

function get_salaries_dropdown() 
{ 
    $this->db->from($this->table_name); 
    $this->db->order_by('id'); 
    $result = $this->db->get(); 
    $return = array(); 
    if($result->num_rows() > 0){ 
      $return[''] = 'please select'; 
     foreach($result->result_array() as $row){ 
      $return[$row['id']] = $row['salaryrange']; 
     } 
    } 
    return $return; 
} 

然后在控制器:

$data['salaries'] = $this->salary_expectation->get_salaries_dropdown(); 

然后最后查看:

<?php echo form_dropdown('salaries', $salaries, set_value('salaries', $salaries)); ?> 

该位在显示下拉列表中可以完美显示,用户可以选择填充值。

因此,当用户选择一个值,然后点击保存,将其保存到数据库。

在管理员看到的编辑页面上,即时通讯使用相同的代码来显示充满选项的下拉列表,但是如何让它自动选择用户在初始阶段选择的那个?

干杯,

+0

从笨文档 - `第一个参数将包含字段的名称,所述第二参数将包含的数组项,第三个参数将包含您希望选择的值。“您在第三个参数中使用的”set_value“方法是什么? – vikmalhotra 2010-12-02 02:31:51

回答

3

根据笨文档

第一个参数将包含该字段的 名称,第二 参数将包含一个关联 阵列的选项,并且第三 参数将包含您希望选择的值 。您还可以通过 通过 第三个参数的多个项目的数组CodeIgniter将 为您创建一个多选。

您的管理员控制器应该有类似

$data['selected'] = $this->salary_expectation->get_salary_selected(); 

据此,管理员视图应该是这样的

<?php echo form_dropdown('salaries', $salaries, $selected_value); ?> 
0

的form_dropdown功能具有用于所选择的选项的第三参数。使用这样的:

<?php echo form_dropdown('piece_type', 
     array(
      'type1' => 'Firts type', 
      'type2' => 'Second option' 
      $selected_value, 
      'id = "piece_type"') ?> 
1

一个讨厌的解决方案来选择所产生的<select><option>元素form_dropdown() form_helper的功能是使用发送的输入输入。 我这样做是因为我找到的任何解决方案都不会显示用户以既不是set_selected也不是set_vaule的形式选择的值。 那么,在我的控制,我有:

$countries = $this->country_model->get_dropdown_array(); // The array have something like $countries[COUNTRY_ID] = COUNTRY_NAME 
$data['countries']=$countries; 

笔者认为:

$selected_country = $this->input->post('country'); 
echo form_dropdown('country',$countries,$selected_country); 

而且工作得很好! :)

0

我有同样的问题,但我已经克服了这个问题使用代码点火器syntex。 这里是解决方案。 最前一页步 循环之前初始化两个数组

$options = array(); 
$select = array(); 

然后在循环写这个指令

foreach($result->result_array() as $row) 
{ 
    /////////Your Condition //////////// 
    if($row['id'] == $myarray['mycolumn']) 
    {    
     $options [$row['id']] = $row['salaryrange']; 
     $select = $row['id'] ; 
    }else{ 
     $options [$row['id']] = $row['salaryrange']; 
    } 
} 

现在

echo form_dropdown('dropdown_name' , $options , $select); 

据工作确定

0

对于更新情况,如果你有传递相应的值来查看通过变量为如$ ind_post(来自控制器)然后写这样的代码,如:

<?php echo form_dropdown('salaries', $salaries, $ind_post->salaries,''); ?>