1

form_dropdown() を使用していますが、以下に問題があります。

フォーム コードは次のとおりです。

echo form_dropdown($level,$level_options,'1');

私が使用すると動作します

$level_options = array(
                  '1'  => 'Grade 6',
                  '2'    => 'Grade 7'
                );

ただし、コントローラーからビューに $data['levels'] を送信するときはそうではありません

参考までに、モデル データベースの取得コードは次のとおりです。

public function getAllLevelNames() {
   $query = $this->db->query("SELECT level_description from levels ORDER BY level_description");
   return $query->result_array();
}

問題

問題は、次のドロップダウン ピック リストを取得することです。

0

Grade 6

1

Grade 7

インデックスはグレー表示されています。

インデックスを削除するにはどうすればよいですか?

前もって感謝します!

PS

ビューに送信された data['levels'] でフォームが機能しているようです。さて、私の見解では、次のコードはコントローラーに「null」を返すようです。理由はありますか?

$level = array(
              'name'        => 'level',
              'id'          => 'level',
              'value'       => '1',
              'maxlength'   => '50',
              'size'        => '50',
              'style'       => 'width:50%',
            );


$level_options = $levels;

echo "<p>Level: ";
echo form_dropdown($level,$level_options,'1');

ありがとう!

4

1 に答える 1

0

results_arrayをループして、正しくフォーマットされた新しい配列を作成する必要があります。

$query = $this->db->query("SELECT level_description from levels ORDER BY level_description");

$for_dropdown = array();
foreach ($query->result_array() as $row) {
    $for_dropdown[$row->level_description] = $row->level_description;
}

return $for_dropdown;

また、levelsテーブルがどのように構成されているかはわかりませんが、通常は、主キーとなる何らかのIDがあります。それがある場合は、それをクエリに含めて、代わりに次のようにすることができます。

$query = $this->db->query("SELECT id, level_description from levels ORDER BY level_description");
... // other code
    $for_dropdown[$row->id] = $row->level_description;
于 2012-10-18T09:30:07.977 に答える