如何在视图中调用控制器?当我使用下面的代码时,我受限于Html和CSS格式。我可以使用jQuery JSON,但这是增加的工作。有什么想法吗?
<?php
class home extends CI_Controller {
function __construct() {
parent::__construct();
}
function displayList() {
$query = $this->db->query("SELECT * FROM data");
foreach ($query->result() as $row) {
echo $row->title . "<br>";
echo $row->text;
}
}
function index() {
$this->load->view('home');
$data['lists'] = $this->displayList();
}
}
?>
答案 0 :(得分:4)
您不在视图中调用控制器。您将数据从控制器传递到视图。
像这样:
function index() {
$data = array();
$data['lists'] = $this->displayList();
$this->load->view('home', $data);
}
现在,在home
视图中,$lists
将是displayList()
的值。
此外,displayList
echo
输出数据,而不是返回数据,因此$data['lists']
将为空。您应该return
字符串,因此视图可以echo
。
function displayList() {
$str = ''
$query = $this->db->query("SELECT * FROM data");
foreach ($query->result() as $row) {
$str .= $row->title . "<br>" . $row->text;
}
return $str;
}
P.S。我通常将数据库查询放入模型中,让控制器调用它们。
答案 1 :(得分:2)
您将向load->view
$data['lists'] = $this->displayList();
$this->load->view('home',$data);
现在,您可以使用$lists
在视图中访问它。
答案 2 :(得分:1)
我认为你要做的就是这个......
<?php
class home extends CI_Controller {
function __construct() {
parent::__construct();
}
function displayList() {
$query = $this->db->query("SELECT * FROM data");
foreach ($query->result() as $row) {
echo $row->title . "<br>";
echo $row->text;
}
}
function index() {
$data = array();
$data['lists'] = $this->displayList();
$this->load->view('home',$data);
}
}
?>
然后您可以在视图中使用$lists
来访问该数据