Здравствуйте, я новичок в codeigniter Framework и у меня есть проблема!
Существует таблица, которая должна быть заполнена всеми видами данных, и одним из пунктов будет меню выбора с опциями, и пока я пытаюсь заполнить это меню выбора, я застрял, и теперь у меня возникла проблема.
Когда я вызываю метод контроллера my_courses ():
function my_courses(){
$username = $this->session->userdata('username'); //1 username from session
$this->load->model('model_professor'); //2 we load a model,whose task is to load professors courses from table
$result =$this->model_professor->professors_classes($username); //3 so we send username to that model
if($result == false){
echo "Professor has no courses ";
}else{ //4 model will return results collected from table
$query = $this->model_professor->professors_classes($username);
$data['records'] = $query;
//
//
//WE SEND DATA TO A TEST PAGE AND THIS IS OK!!! WHEN I DO THAT EVERYTHING WORKS FINE
//
//
$this->load->view('professor/test',$data);
}
}
МОДЕЛЬ professors_classes:
function professors_classes($username){
$this->db->where("username", $username);
$query = $this->db->get("table_teach_a_course");
//if we have results then we will return them
if($query->result()){
return $query->result();
}
//else we return false
else{
return false;
}
}
Это моя раздетая тестовая страница без имени и значения в select и in option, и здесь все работает нормально. Здесь мне удается поймать результаты и показать их:
<?php if(isset($records)) { ?>
<select>
<?php foreach ($records as $row){ ?>
<option value=""> <?php echo $row->sifra_predmeta; ?> </option>
<?php } ?>
</select>
<?php } ?>
Но проблема возникает, когда в моем контроллере я отправляю данные на другую страницу (просмотр), что на самом деле важно для меня.
Поэтому, когда я делаю это в методе my_courses ():
$this->load->view('professor/professor_view_insert_labwork',$data);
Я думаю, что это должно посылать данные моему представлению: Professor_view_insert_labwork, но я не могу получить эти данные в этом представлении. Я просто не знаю как и почему!
Это мое раздетое, но «ВАЖНОЕ» представление, опять же без имени и значения в select и in option, представление Professor_view_insert_labwork:
<?php
echo form_open("controller_professor/insert_labwork");
?>
<table border="1">
<tr>
<td>course name</td> <td>button</td> <td></td>
</tr>
<tr>
<td>
<?php if(isset($records)) { ?>
<select>
<?php foreach ($records as $row){ ?>
<option value=""> <?php echo $row->sifra_predmeta; ?> </option>
<?php } ?>
</select>
<?php
}else {
echo"<h2>No records were returned!</h2>";
} ?>
</td>
<td>
<input type="submit" class="" value="Save" />
</td>
</tr>
</table>
<?php
echo form_close();
?>
но он постоянно извлекается в цикле else и выводит эхо-сообщение. Записи не возвращены!
Я не знаю, почему в этом представлении — Professor_view_insert_labwork, я не могу добраться до data $ records, но в тестовом представлении мне удается вытащить данные.
Пожалуйста, помогите мне, потому что я действительно не знаю, что было не так в коде
в твоей модели замени
if($query->result()){
return $query->result();
}
с
if($query->num_rows() > 0){
return $query->result();
}
Изменить модель
function professors_classes($username)
{
$this->db->where("username", $username);
$query = $this->db->get("table_teach_a_course");
//if we have results then we will return them
$result = $query->result_array(); //here
if(!empty($result))
{
return $result; //here
}
//else we return false
else{
return false;
}
}
И контроллер
<?
function my_courses(){
$username = $this->session->userdata('username'); //1 username from session
$this->load->model('model_professor'); //2 we load a model,whose task is to load professors courses from table
$result =$this->model_professor->professors_classes($username); //3 so we send username to that model
if($result == false)
{
echo "Professor has no courses ";
}
else
{
$data['records'] = $this->model_professor->professors_classes($username);
$this->load->view('professor/test',$data);//make sure your page is correct
}
}
?>
Ввиду
<?php if(!empty($records))
{
?>
<select>
<?php
foreach ($records as $row)
{
?>
<option value=""> <?php echo $row['sifra_predmeta'] ?> </option>
<?php
}
?>
</select>
<?php
}
?>