你好我是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