您好我是codeigniter框架的初学者,我遇到了问题!
有一个表需要填充各种数据,其中一个项目将是带有选项的选择菜单,当我尝试填充选择菜单时,我卡住了,现在我遇到了问题。
当我调用控制器的方法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);
}
}
MODEL 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选项中没有名称和值的剥离测试页面,这里一切正常。在这里,我设法捕捉结果并向他们展示:
<?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选项中没有名称和值,church_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,我无法达到数据$记录,但在测试视图中我设法拔出数据。
请帮助我,因为我真的不知道代码中出了什么问题
答案 0 :(得分:0)
更改模型
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
}
?>
答案 1 :(得分:0)
在您的模型中替换
if($query->result()){
return $query->result();
}
与
if($query->num_rows() > 0){
return $query->result();
}