Я буквально тянул свои волосы с этим, и это начало задерживать остальную часть моего проекта, и это действительно меня расстраивает.
Я пытаюсь заполнить раскрывающийся список, используя значения, взятые изтаблицу базы данных, так что если в будущем пользователь захочет добавить дополнительные параметры в раскрывающийся список, он может добавить их в таблицу в базе данных.
Я использую платформу Codeigniter (PHP), используяШаблон проектирования MVC.
Вот сообщение об ошибке, которое я получаю:
Обнаружена ошибка PHP. Уровень серьезности: Уведомление Сообщение: Попытка получить свойство не-объекта Имя файла: views / submit.php Номер строки: 139
Здесь используется функция «Моя модель», которая извлекает строки из таблицы, называемой «Персонал».Это отлично работает!
function retrieve_values()
{
$query = $this->db->get('staff');
if ($query->num_rows() > 0)
{
//true if there are rows in the table
return $query->result_array(); //returns an object of data
}
return false;
}
Это функция контроллера, которая получает параметр и передает его на мой взгляд.Это работает отлично!
public function displayform()
{
//Checks if a user is logged in, if they are not they get redirected -
if ( $this->session->userdata('name') == FALSE || $this->session->userdata('access_level') == FALSE)
{
redirect ('site/index');// to home page
}
//Stores the returned array in instance called "formdata" which will be passed to the view to be used in pulldown menu
$page['formdata']=$this->submit_model->retrieve_values();
//This loads the form
//Instance of "page" in array "page" specifies the file name of the page to load
$page['page'] = 'submit';
$this->load->view('template', $page );
return;
}
Это та часть представления, которая вызывает проблему: я использую foreach, а затем выводю экземпляры массива в опцию.
<select>
<?php foreach ($formdata as $row) { ?>
<option value="<?php echo $row->staff_id; ?>"><?php echo $row->name; ?></option>
<?php } ?>
</select>
printr()
переменной $formdata
показывает, что она содержит следующие значения:
Array (
[0] => Array (
[staff_id] => 1
[name] => Cardiology Nurse
)
[1] => Array (
[staff_id] => 2
[name] => Radiology Nurse
)
[2] => Array (
[staff_id] => 3
[name] => Scrub Nurse
)
[3] => Array (
[staff_id] => 4
[name] => Circulating Nurse
)
[4] => Array (
[staff_id] => 5
[name] => Nurse
)
[5] => Array (
[staff_id] => 6
[name] => Training Nurse
)
[6] => Array (
[staff_id] => 7
[name] => Physiologist
)
[7] => Array (
[staff_id] => 8
[name] => Radiographer
)
[8] => Array (
[staff_id] => 9
[name] => Consultant
)
[9] => Array (
[staff_id] => 10
[name] => Radiologist
)
[10] => Array (
[staff_id] => 11
[name] => Cardiologist
)
[11] => Array (
[staff_id] => 12
[name] => Anaethestist
)
[12] => Array (
[staff_id] => 13
[name] => Non-medical Staff
)
)