你好我是codeigniter框架的初学者,我需要一些帮助。 我有一个表格(在表格组织中)需要填充各种数据。一个场(第一行,第二列)需要与下拉MENY(与来自数据库表中的数据)(选择选项菜单中)来填充,我设法到,codeigniter填充从视图下拉菜单 - 从视图触发方法
但是,这是我做了什么做到这一点:
当链接用户点击(T - 插入Labwork)
实际上他所说的控制器的方法(my_courses())和方法:
1 - 从会话获取用户名
2 - 加载模型。
3 - 然后,他通过用户名所加载的模型
4 - 如果模型返回false比我们会返回消息给用户
5 - 否则,如果模型返回true,那么我们会返回结果
CONTROLLERS方法是这样的:
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['main_content'] = 'professor/t_professor_insert_labwork_2';
$data['another_content'] = 'professor/professor_view_links';
$data['records'] = $query;
$this->load->view('includes/template',$data);
}
}
模型的方法是这样的:
function professors_classes($username){
$this->db->where("username", $username);
$query = $this->db->get("table_teach_a_course");
if($query->result()){
return $query->result();
}else{
return false;
}
}
最后我的看法(较短的版本,而不从图像中的所有行)t_professor_insert_labwork_2看起来是这样的:
<?php
echo form_open("controller_professor/insert_labwork");
?>
<table>
<tr>
<td>Course name:</td>
<td>
<?php if(isset($records)) { ?>
<select>
<?php foreach ($records as $row){ ?>
<option value=""> <?php echo $row->course_code; ?> </option>
<?php } ?>
</select>
<?php
}else {
echo"<h6>No records were returned!</h6>";
} ?>
</td>
</tr>
<tr> <td colspan="2"> <hr/> </td></tr>
<tr>
<td><input type="reset" value="Clear form"></td>
<td></td>
<td><input type="submit" value="Save"></td>
</tr>
</table>
<?php
echo form_close();
?>
<?php
echo validation_errors('<p style="color:red"></p>');
?>
他也加载了这个视图和其他一些视图,当他加载我的t_professor_insert_labwork_2视图时,就会出现问题。
这是主页链接呼叫:
$this->load->view('professor/t_professor_insert_labwork_2');
但是,这只是加载谁是空的,并且不能填充下拉菜单的观点,我明白为什么,因为没有什么触发我的方法填充该菜单。但是这对我来说很麻烦,我只是不知道如何从我的视图中触发一些将数据返回给该字段的方法。
而我的问题是,我怎样才能调用我的视图,这会自动触发一些方法谁将返回数据来填充这个下拉字段?
感谢大家愿意帮助我!
db是否实际返回查询结果?如果没有,我建议你要么为你的模型添加一个回退方法,即如果($ query-> num_rows()!> 0){//得到其他结果}。或者替代地填充您的视图,其中显示的数组为空的默认选项。 – kurt
不,我真的用db的实际数据填充我的下拉菜单,所以这不是问题,因为我的方法在这个意义上工作正常。唯一的问题是,目前我需要激发我的方法,我需要点击链接将数据返回到我的视图。但我想自动完成,而不是像我已经描述的那样。只是不知道如何从视图 – useruser
自动调用你不从视图中调用它,然后从控制器默认或索引方法调用它。即public function index(){$ query = $ this-> model_professor-> professors_classes($ username); $ data ['main_content'] ='professor/t_professor_insert_labwork_2'; $ data ['another_content'] ='professor/professor_view_links'; $ data ['records'] = $ query; $ this-> load-> view('includes/template',$ data); }。只是图片你想先显示的结果并将其传递给你的模型 – kurt