我想将$data
从名为poll
的控制器传递给results_view
但是我得到一个未定义的变量错误。
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Poll extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->database();
$this->load->helper('form');
}
public function index()
{
$this->load->view('poll_view',$data);
}
public function vote()
{
echo "Voting Successfull";
$this->db->insert('votes',$_POST);
}
public function results()
{
echo "These are the results";
//$query = $this->db->get('votes');
$data = "hello";
$this->load->view('results_view', $data);
}
}
Results_view.php
<html>
<?php echo $data; ?>
</html>
$data
应该是一个数组或对象:http://codeigniter.com/user_guide/general/views.html
$data = array(
'title' => 'My Title',
'heading' => 'My Heading',
'message' => 'My Message'
);
$this->load->view('results_view', $data);
results_view.php
<html>
<?php
//Access them like so
echo $title.$heading.$message; ?>
</html>
如果你通过
$data = your code
$this->load->view('your-page', $data);
并将您的视图数据作为
<?php echo $data;?>
它不会起作用,因为ci不理解这个模式。如果想传递值表单控制器来查看,那么你可以尝试这个 -
控制器 -
$data['any-name'] = your values;
$this->load->view('your-page', $data);
然后在您的视图中,您可以通过 - 获取此数据 -
<?php echo $any-name;?>
希望这对你有所帮助。
我已经看到了上述所有答案,所以当我必须将控制器中的数据加载到我的视图时,这就是我所做的。将数据传递到控制器的视图:
public function your_controller(){
// Your Necessary Code
// You have the $data, $data2, $data3 to post to the view.
$this->load->view('your_view_directory or view_page',['data'=>$data, 'data2'=>$data2, 'data3'=>$data3... so on ]);
}
在视图侧您可以简单地检索该数据:显示您可以简单地使用echo
,print
,print_r
。如果你想循环它,你也可以这样做。
在控制器中:
公共功能产品(){
$data = array("title" => "Books", "status"=>"Read","author":"arshad","company":"3esofttech",
“主题”:“计算机科学”);
数据从模型到控制器
$this->load->model('bookModel');
$result = $this->bookModel->getMoreDetailsOfBook();
**Add *$result* from model to *$data* array**
$data['tableRows'] = $result;
从Controller到View的$ data
$this->load->view('admin/head',$data);
并在视图文件视图/ user.php中访问
<?php echo $data;
foreach($tableRows as $row){ echo
$row['startData']; } ?>
代替
$data = "hello";
$this->load->view('results_view', $data);
做
$data['hello'] = 'hello';
$this->load->view('results_view', $data);
在您的控制器文件和控制器中,将具有hello字符串的数据发送到results_view,在您的视图文件中,您只需访问
echo $hello;
简单来说,
控制器中的$ data ['a']在您的视图中变为$ a。 (您的视图中不会存在$ data,只有索引可用)
EG
Controller:
$data['hello']='hellow world';
view:
echo $hello;
该视图不会调用数据“数据”
控制器将包括一个关联索引(不确定这是否是正确的命名法),因为数据,例如'stuff',因此$data['stuff']
你在视图中的echo
如此:echo $stuff;
not echo $data;
我是一个v low low code fiddler但是真的很喜欢CodeIgniter所以请原谅我,如果我有这个关于山雀的屁股。
还有一件事 - 肯定你的构造函数有点浪费。所有加载库和助手都是使用自动加载文件完成的。
你只需要创建一个数组,你使用codeigniter吗?
控制器上的示例:
$data['hello'] = "Hello, world";
$this->load->view('results_view', $data);
在de page“results_view”中,您只需:
<?php echo $hello;?>
Obs:您可以创建n个数据,只需注意名称并使其成为一个数组。
Obs²:要使用数据,请使用带回波的数组键。
你可以创建属性$data = []
;在CI_Controller内部(路径:system / core / Controller.php)并存储要在视图中显示的所有数据。你可以在CI_Controller中加载语言,菜单等常用数据。您也可以为控制器中的视图添加特殊数据。 (例如:$this->data['message'] = "Hello world";
)最后,你可以通过$this->data
来查看加载视图(例如:$this->load->view('view_name',$this->data);
)
我希望这能帮到您
你可以这样做
控制器中定义的数组
$data['hello'] = "hello";
并传递变量来查看
echo $hello;
在您的控制器中,您可以通过
$data['poll'] = "Your results";
在您的视图中,您可以致电
echo $poll;
在控制器中:
$data["result"] = $this->login_model->get_login(); // Get array value from DB..
$this->load->view('login-form',$data); // Pass the array to view
在视图中:
print_r($result); // print the array in view file
好的,我终于解决了。你应该有一个模型(它有很多帮助)
在你的模型中做类似的事情
模型
class poll_model extends CI_MODEL {
function __construct() {
$this-load->database();
}
function get_poll {
$this->db->query("SELECT * FROM table");
$row = $query->row();
$obj = array(
'id' => $row->id
);
return $obj;
}
}
现在,如果你有一个以上的id说poll#的名字,你可以添加数组。现在在你的控制器做
class Poll extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->database();
$this->load->helper('form');
$this->load->model('poll_model');
}
public function index()
{
$data["a"] = $this->poll_model->get_poll();
$this->load->view('poll_view',$data);
}
最后在VIEW中
<? echo $a["id"]; ?>
这是一个很大的帮助。我通过测试得出结论,它对我有用。