Code Igniter - form_dropdown从数据库中选择正确的值

时间:2010-12-02 02:17:16

标签: codeigniter

我在CodeIgniter中的form_dropdown函数有一些问题....我的应用程序分为两部分,用户进入,输入表单并提交....一旦提交管理员就可以进入并编辑那些人形成然后将其保存到数据库中。

因此,要显示初始表单中的下拉列表,请使用以下内容(下拉列表中的所有选项均来自数据库)

型号:

    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;
}

然后在Controller中:

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

然后最后查看:

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

该位在显示填充了用户选择值的下拉列表时非常有效。

因此,当用户选择一个值,然后点击保存时,它会保存到数据库中。

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

干杯,

5 个答案:

答案 0 :(得分:3)

根据Codeigniter文档

  

第一个参数将包含   该字段的名称,第二个   参数将包含一个关联   选项数组,第三个   参数将包含您的值   希望被选中。你也可以通过   一个包含多个项目的数组   第三个参数,和CodeIgniter会   为你创建一个多选。

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

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

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

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

答案 1 :(得分:1)

选择form_helper的<option>函数生成的<select> form_dropdown()元素的一个令人讨厌的解决方案是使用发送的帖子输入。 我这样做是因为我发现的任何解决方案都没有显示用户在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);

工作正常!!! :)

答案 2 :(得分:0)

form_dropdown函数具有所选选项的第三个参数。像这样使用它:

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

答案 3 :(得分:0)

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

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

工作正常

答案 4 :(得分:0)

对于更新案例,您已将相应的值传递给view,如果传递变量类似于$ ind_post(来自控制器),则写下以下代码:

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