代码:
查看
<html>
<body>
<?php echo form_open('samplecontroller/sample'); ?>
<input type="text" name="samplename"/>
<input type="submit" value="go"/>
<?php echo form_close(); ?>
</body>
</html>
控制器
<?php
Class samplecontroller extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('Sample_insert');
}
function index()
{
$this->load->view('sample.php');
}
function show($data)
{
$this->load->view('sampleresult',$data);
}
function sample()
{
if($result = $this->Sample_insert->insert_into_sample())
{
$this->show($result);
}
}
}
?>
模型
<?php
Class Sample_insert extends CI_Model
{
function insert_into_sample()
{
$sample = array(
'samplename' => $this->input->post('samplename'),
);
$this->db->insert('sample', $sample);
$latest_id = $this->db->insert_id();
return $latest_id;
}
}
?>
流程是,我有2个视图。另一个只包含1个文本输入,然后转到控制器,然后控制器将其传递给模型,然后模型获取文本输入中的值,然后插入到我的样本表中。
示例表有2列,id(PK,AI)和名称
插入之后在我的模型上。我添加了一行,返回$ latest_id。然后传递回我的控制器,然后将其传递给另一个只有
的视图print_r($data);
毕竟,它显示错误。
消息:未定义的变量:数据
我不确定流程出错的地方或者我是否犯了语法错误。如果有人知道/ insert_id()的专家,你能指出我错在哪里吗?无论如何,香港专业教育学院做了我的研究,并在网上得到了如何错误的insert_id。我不确定它的真实与否,但我已经被重定向到论坛,其中insert_id返回null,有些人说它是一个bug。我希望它不是。
答案 0 :(得分:0)
根据您的评论,您必须在控制器中进行一些更改。
function show($data)
{
$this->load->view('sampleresult',array("data"=>$data));
}
您可以使用$data
。
例如:
echo $data;
修改:根据您在回答中的评论,对于模型中的多行插入,请添加以下代码
$id_arr = array();
foreach($sample_data as $sample)
{
$this->db->insert('sample', $sample);
$id_arr[] = $this->db->insert_id();
}
return $id_arr;
现在在您看来,您将获得$ data
中的IDforeach($data as $id)
{
echo $id;
}