2012-01-16 31 views
7

誰かが私を助けてくれるのだろうかと思っています。私はform_dropdownを持っています。これはデータベースのオプションでいっぱいです。リストの一番上にあるデフォルトの「Please Select」値を追加したいが、それをデータベースに追加せずに行う方法は分からない。次のようにCodeIgniter - form_dropdownにデフォルト値を追加する

私のコードは次のとおりです。

答えて

11

もう一つの方法は、次のようになります。form_dropdownのFUNCに

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

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 [''] = 'Please Select';それが欲しいのでなければ..? –

+0

@Madmartigan、ありがとう、完了、また行番号のチェックを含めるために私の答えを更新しました。 – Jakub

+0

'result()'は常に配列を返しますので、これは必要ありません。それは無意味です。 falseを返すことは、配列を返す関数にとっては良い考えではないかもしれません。空の配列が適切かもしれません。だから+1と-1:/ –

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

これを行う最も簡単で簡単な方法 – Jakub

+1

DBの結果がない場合は、まず '$ dropDownList = array( '' => 'Please Select');を定義します。プラス機能を呼び出さない小さな小さなブースト。 –

+0

+1 - また、検証を使用して空の結果をデータベースから除外し、必要に応じて選択を強制します。 – swatkins

0

form_helper.phpを変更するなど何かを追加する可能性もあります。しかし、私はデフォルトとして選択されていませんが、フォームの2番目のエントリです。

しかし、問題は、一般的にダウンしてはならないコアファイルを変更することです。

関連する問題