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;