2012-01-16 46 views
7

我想知道是否有人可以幫助我。我有一個form_dropdown,我正在填充數據庫中的選項。我想在列表頂部添加一個默認的「請選擇」值,但不知道如何在沒有將其添加到數據庫的情況下執行此操作。CodeIgniter - 將一個默認值添加到form_dropdown

我的代碼如下:

回答

11

另一種方式來寫這將是:

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 
    } 
} 
+2

您需要使用''''作爲鍵或'0'的形式值。即'$ dropDownList [''] ='請選擇';'除非你想要..?? – 2012-01-16 21:24:12

+0

@Madmartigan,謝謝,完成,也更新了我的答案,包括行號檢查。 – Jakub 2012-01-16 21:26:50

+0

你不需要這樣做,result()總是返回一個數組。沒有用。對於返回數組的函數來說,返回false可能不是一個好主意,但是一個空數組可能更合適。所以+1和-1:/ – 2012-01-16 21:28:21

7

只要將其添加到陣列中返回它之前。

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

+1最好也是最簡單的方法 – Jakub 2012-01-16 21:21:29

+1

更好的是,定義'$ dropDownList = array(''=>'請選擇');'如果沒有數據庫結果,請首先定義。再加上不調用函數的微小提升。 – 2012-01-16 21:21:32

+0

+1 - 此外,只需使用驗證將空結果保留在數據庫外並強制進行選擇(如果需要)。 – swatkins 2012-01-16 21:21:33

0

也有改變form_helper.php並添加類似的可能性:

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

到form_dropdown FUNC 。但是,我沒有將它選爲默認值,而是將它作爲表單中的第二項。

但問題是你改變核心文件不應該一般下來。