【问题标题】:CodeIgniter - Adding a default value to a form_dropdownCodeIgniter - 向 form_dropdown 添加默认值
【发布时间】:2013-03-16 00:14:38
【问题描述】:

我想知道是否有人可以帮助我。我有一个 form_dropdown,我正在用数据库中的选项填充它。我想在列表顶部添加一个默认的“请选择”值,但如果不将其添加到数据库中,我不知道该怎么做。

我的代码如下:

function populatedropdown()
{
    $query = $this->db->query('SELECT * FROM '.$this->table_name.' WHERE active=1 ORDER BY brand');
    $dropdowns = $query->result();

    foreach($dropdowns as $dropdown) {
        $dropDownList[$dropdown->brand] = $dropdown->brand;
    }
    $finalDropDown = $dropDownList;

    return $finalDropDown;
}

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    另一种写法是:

    function populatedropdown()
    {
        $query = $this->db->query('SELECT * FROM '.$this->table_name.' WHERE active=1 ORDER BY brand');
    
        if ($query->num_rows() > 0) {
            $dropdowns = $query->result();
    
            $dropDownList[''] = 'Please Select';    // default selection item
            foreach($dropdowns as $dropdown) {
                $dropDownList[$dropdown->brand] = $dropdown->brand;
            }
    
            return $dropDownList;
        } else {
            return false;       // return false if no items for dropdown
        }
    }
    

    【讨论】:

    • 你需要使用''作为key或者0会在表单值中传递。即$dropDownList[''] = 'Please Select'; 除非你想要那个..?
    • @Madmartigan,谢谢,完成,还更新了我的答案以包括行号检查。
    • 你不需要它,因为result() 总是返回一个数组。这是毫无意义。对于应该返回数组的函数,返回 false 可能不是一个好主意,空数组可能更合适。所以 +1 和 -1 :/
    【解决方案2】:

    在返回之前将其添加到数组中。

    function populatedropdown()
    {
        $query = $this->db->query('SELECT * FROM '.$this->table_name.' WHERE active=1 ORDER BY brand');
        $dropdowns = $query->result();
    
        foreach($dropdowns as $dropdown) {
            $dropDownList[$dropdown->brand] = $dropdown->brand;
        }
        $finalDropDown = array_merge(array('' => 'Please Select'), $dropDownList);
    
        return $finalDropDown;
    }
    

    【讨论】:

    • 更好的是,首先定义$dropDownList = array('' => 'Please Select');,以防没有数据库结果。加上不调用函数的微小提升。
    • +1 - 同样,只需使用验证将空结果保留在数据库之外并强制选择(如果需要)。
    • 嗯,这正是我正在寻找的......谢谢
    • @BigJobbies:没有问题。这就是我在我的网站上的做法:-)
    【解决方案3】:

    还可以更改 form_helper.php 并添加如下内容:

     $form .= '<option value =0 >...</option>';
    

    到 form_dropdown 函数。但是,我没有选择它作为默认值,而是表单中的第二个条目。

    但问题是您更改了通常不应该关闭的核心文件。

    【讨论】:

      猜你喜欢
      • 2011-07-31
      • 1970-01-01
      • 1970-01-01
      • 2011-10-11
      • 1970-01-01
      • 1970-01-01
      • 2011-10-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多