2017-06-09 3 views
0
<?php 
    $query= $this->db->query('SELECT state FROM states ORDER BY state= "New Jersey" desc, id asc'); 

    $options = $query->result_array(); 

    $options = array_column($options, 'state'); 

    echo form_dropdown(array('name' =>'state'), $options, set_value('states', isset($states->state) ? $states->state:''), lang('states_field_states')); 
?> 

enter image description here enter image description here
ニュージャージードロップダウン形式のデフォルト値として設定され、インデックス配列は0であるが、この状態に対する表のIDは34(私のテーブル:50個の状態のID 1-> 50)です。どのように私はすべての州のテーブルのidとドロップダウン形式のインデックス配列を一致させるのですか?フォームドロップダウンリストでのインデックス配列の一致方法CodeIgniter with id in SQL?

+0

はあなたのクエリは手の込んだしてください理解していなかったです。 –

+0

状態が希望の状態に等しい場合、それ以外の場合は空白のままにしますか? –

+0

この行のコードを削除する$ options = array_column($ options、 'state'); –

答えて

0

associative arrayidとし、state$optionsとします。以下のように。

$this->db->select('id,state') 
$this->db->from('states'); 

$states = $this->db->get()->result_array(); 

$optionsの場合はassociative arrayとします。

foreach($states as $state) 
{ 
$options[$state['id']] = $state['state']; 
if($state['state'] = "New Jersey"){ //check id rather than name in case if edit 
     $selected = $state['id'] 
    } 

} 

その後

echo form_dropdown('state', $options, $selected); 

意志が欲望の結果を与えます。以下は

+0

とドロップダウンリストにデフォルトとしてニュージャージーを表示するにはどうすればいいですか? – jenii

+0

は、デフォルト選択のために3番目のパラメータを渡す必要があります。 –

+0

編集済みの回答を試してください。 –

0

はコード

$query= $this->db->query('SELECT id,state FROM states ORDER BY state= "New Jersey" desc, id asc'); 
     $states = $query->result_array(); 
     //$options = array_column($options, 'state'); 
     // Add default state 
     $options[0] = "states"; 
     foreach($states as $state){ // array with id as key and state name as value 
      $options[$state['id']] = trim($state['state']); 
     } 
     // get New Jersey state id 
     $default_select = array_search('New Jersey', $options); 
     echo form_dropdown('state', $options, $default_select); // to make the value selected. 
+0

エラー:未定義のインデックス:id $ options [$ state ['id']] = $ state ['state']; – jenii

+0

編集した回答を確認してください。 –

+0

それは働いた!ステートラベルは消えました: echo state_dropdown(array( 'name' => 'state')、$ options、$ default_select、set_value( 'states'、isset($ states-> state)?$ states-> state: '')、lang( 'states_field_states')); – jenii

関連する問題