Как получить form_dropdown () Показать выбранное значение в codeigniter?
-
27-10-2019 - |
Вопрос
Я пытаюсь заполнить выпадающий список из базы данных. В моем файле просмотра у меня есть следующий код
$batch= $query ['batch']; // I pull this data from a separate model
echo form_dropdown('shirts', $options, $batch);
Теперь выпадающий список заполняет штраф данных, но проблема в том, что я не получаю значение-«$ batch», автоматически выбранная при загрузке страницы. Интересно, что если я повторяю $ batch, в других местах на странице показывает правильные данные, что означает, что $ batch - это нормально.
Вот мой контроллер
function update($id){
$this->load->model('mod_studentprofile');
$data['query']= $this->mod_studentprofile->student_get($id);
$data['options']= $this->mod_studentprofile->batchget();
$data['tab'] = "Update Student Information";
$data['main_content']='update_studentprofile';
$this->load->view('includes/template',$data);
}
И вот моя модель
function batchget() {
$this->db->select('batchname');
$records=$this->db->get('batch');
$data=array();
foreach ($records->result() as $row)
{
$data[$row->batchname] = $row->batchname;
}
return ($data);
}
Не могли бы вы, пожалуйста, помогите мне решить эту проблему. Я хочу автоматически выбрать значение «$ batch» в раскрывающемся списке, когда страница загружается.
Заранее спасибо.
Редактировать ... моя модель для Student_get ($ id)
function student_get($id)
{
$query=$this->db->get_where('student',array('studentid'=>$id));
return $query->row_array();
}
Спасибо :)
Решение
Я думаю, что, вероятно, происходит то, что значение в $ Batch может соответствовать тому, что рендеринг в раскрывающемся спине, но не фактическое ключ в вариантах $ для этой конкретной опции, которая будет значением = "" "часть HTML.
Например...
// this wouldn't select 'foo' as you may be thinking
$options => array('0' => 'foo', '1' => 'bar');
$batch = 'foo';
echo form_dropdown('shirts', $options, $batch);
// this would select foo
$options => array('foo' => 'foo', 'bar' => 'bar');
$batch = 'foo';
echo form_dropdown('shirts', $options, $batch);
Измените в ответ на комментарий OP:
Метод Batchget () выглядит так, как будто он возвращает ваш массив параметров $ в соответствующем формате, а ваш метод Student_get () возвращает row_array. Похоже, что в представлении вы присваиваете значение одного из ключей, возвращаемых методом Student_get, является выбранным значением, хранящимся в $ batch, которое затем передается как третий аргумент Form_dropdown ().
Все это кажется правильным. Пока стоимость партии $ действительно является одним из ключей массива, которые находятся в параметрах $, то form_dropdown () установит один из вариантов раскрываемого списка как был выбран.
Другие советы
Отладка материала.
var_dump()
$options
, var_dump() $batch
, Посмотрите на них и посмотрите, где вы ошиблись.
Третий вариант должен быть значением ключа, а не значением метки.
Энтони Джек, вероятно, прав.