Codeigniter - отправка запроса result_arry() в представление для form_dropdown

Я использую form_dropdown() и у меня есть проблема ниже:

Код формы:

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

Работает когда использую

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

но не когда я посылаю $data['level'] из контроллера для просмотра

Для справки, модель получения базы данных:

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

Кажется, теперь форма работает с данными ['уровнями'], отправленными в представление. Теперь, на мой взгляд, следующий код возвращает "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');

Спасибо!

1 ответ

Вам нужно будет перебрать ваш 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 Таблица структурирована, но обычно у вас будет некоторый идентификатор, который будет первичным ключом. Если у вас это есть, вы можете включить его в свой запрос и получить что-то вроде этого:

$query = $this->db->query("SELECT id, level_description from levels ORDER BY level_description");
... // other code
    $for_dropdown[$row->id] = $row->level_description;
Другие вопросы по тегам