这是我的控制器:
class CommonController extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->model('common_model'); //load your model my model is "common model"
}
public function add_work(){
$names = $_POST['name'];
$works = $_POST['work'];
$allValues = array(); // array to contains inserted rows
foreach($names as $key => $name){
$name= "your specified name";
$insertdata = array();
$insertdata['work'] = $works[$key];
$insertdata['name'] = $name;
$this->common_model->insert($insertdata);
array_push($allValues,$insertdata);
//$insert = mysql_query("INSERT INTO work(name,work) values ( '$name','$work')");
}
foreach($allValues as $insertRow){
echo $insertRow['work'];
echo $insertRow['name'];//this shows data well. but how to pass data in view.php
}
//view code will add here to show data in browser
}
基本上我想将所有数据传递给view.php以进行打印或导出。我怎么能这样做。
答案 0 :(得分:9)
要加载视图,您应该这样做。
$this->load->view("filename");
如果你想传递数据进行查看,你应该这样做。
$this->load->view("filename",$data);
$data
应该包含您要在视图中打印的所有参数。
语法是这样的。
$this->load->view("filename","data to view","Returning views as data(true / false");
如果第三个参数为true,则视图将作为数据。它不会作为输出转到浏览器。
修改强>
更改
$this->load->view('print_view',$insertdata);
到
$data['insertdata'] = $insertdata;
$this->load->view('print_view',$data);
有关详情,请查看this link
答案 1 :(得分:4)
CI类如何相互传递信息和控制
调用视图 我们将看到控制器调用视图并将数据传递给它: 首先,它创建一个数据数组($ data)传递给视图;然后它加载并在同一个表达式中调用视图:
$this->load->view('testview', $data);
您可以从任何控制器中调用库,模型,插件或帮助程序,模型和库也可以相互调用以及插件和帮助程序。 但是,您不能从另一个控制器调用一个控制器,或从一个控制器调用控制器 模型或图书馆。模型或库只能通过两种方式引用回控制器: 首先,它可以返回数据。如果控制器分配如下值:
$foo = $this->mymodel->myfunction();
并且函数设置为返回一个值,然后该值将传递给控制器内的变量$ foo。
//样品
public function display()
{
$data['text_to_display'] = $this->text_to_display;
$data['text_color'] = $this->text_color;
$this->load->view('display_view',$data);
}
将动态数据添加到视图
数据通过视图的第二个参数中的数组或对象从控制器传递到视图 装载方法。以下是使用数组的示例:
$data = array(
’title’ => ’some’,
’heading’ => ’another some’,
’message’ => ’and another some’
);
$this->load->view(’view’, $data);
以下是使用对象的示例:
$data = new Someclass();
$this->load->view(’view’, $data);
发送多维数组
如果我们从数据库中提取数据,通常会 以多维数组的形式。
<?php
class foo extends CI_Controller {
public function index()
{
$data[’Books’] = array(’POEAA’, ’TDD’, ’Clean C’);
$data[’title’] = "Title";
$data[’heading’] = "Heading";
$this->load->view(’view’, $data);
}
}
在视图中
<html>
<head>
<title><?php echo $title;?></title>
</head>
<body>
<h1><?php echo $heading;?></h1>
<h3>My Books List</h3>
<ul>
<?php foreach ($Books as $item):?>
<li><?php echo $item;?></li>
<?php endforeach;?>
</ul>
</body>
</html>
注意:强>
有第三个可选参数允许您更改方法的行为,以便它以字符串形式返回数据 而不是将其发送到您的浏览器。默认行为是false,将其发送到您的浏览器。记得 如果要返回数据,请将其分配给变量:
$string = $this->load->view(’view’, ’’, TRUE);
以上不会直接解决您的问题,但肯定有助于理解概念。