请阅读以下代码
Insertmodel.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Insertmodel extends CI_Model {
public function insertdata($data)
{
$this->db->insert('page',$data);
}
public function getpagedata()
{
//$this->db->select('pname,purl,pub');
//$this->db->from('page');
//$this->load->database();
$getquery = $this->db->get('page');
return $getquery->result();
}
}
Pagedatainsert.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Pagedatainsert extends CI_Controller {
public function insertdata()
{
$this->load->helper('date');
$this->load->model('insertmodel','tblselect');
$data = array(
'pname'=>$this->input->post('page-name'),
'purl'=>$this->input->post('page-url'),
'pcon'=>$this->input->post('page-content'),
'pub'=>date('Y-m-d H:i:s')
);
$this->tblselect->insertdata($data);
}
public function gpdatacon()
{
$this->load->model('insertmodel');
$data['query'] = $this->insertmodel->getpagedata();
$this->load->view('backend/pages/pages',$data);
}
}
pages.php(位于目录后端/页面下)
<?php foreach($data as $row){?>
<tr class="odd gradeX">
<td><?= $row->pname; ?></td>
<td><?= $row->purl; ?></td>
<td><?= $row->pub; ?></td>
</tr>
<?php } ?>
此处发生错误,表示
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: data
Filename: pages/pages.php
Line Number: 73
Backtrace:
File: D:\Ampps\www\customcms\application\views\backend\pages\pages.php
Line: 73
Function: _error_handler
File: D:\Ampps\www\customcms\application\controllers\Backmanage.php
Line: 26
Function: view
File: D:\Ampps\www\customcms\index.php
Line: 316
Function: require_once
我的数据库名称为customcms
,表名为page
。
在google上进行了大量搜索,但没有找到这么多。此外,我在stackoverflow上发现了类似这样的问题,但在我的案例中并没有那么有用。我正在为这个问题工作一整天但是没有得到解决。
答案 0 :(得分:3)
改变它:
$this->load->view('backend/pages/pages',$data);
到
$this->load->view('backend/pages/pages',array('data' => $data));
或更改它:
<?php foreach($data as $row){?>
到
<?php foreach($query as $row){?>
说明: view()
函数的第二个参数是一个类似
view('viewname', array('data' => $data))
在视图中,您可以使用$data
访问它。如果您通过$data
,则必须使用其索引,即$query
答案 1 :(得分:1)
将$ data更改为$query
,因为您将所有数据存储在$data['query']
中,以便获取$ qyery变量中的所有数据
<?php foreach($data as $row){?>
.............
<?php } ?>
到
<?php foreach($query as $row){?>
............
<?php } ?>
如果不起作用,则print_r使用并检查该值退出
public function gpdatacon()
{
$this->load->model('insertmodel');
$data['query'] = $this->insertmodel->getpagedata();
print_r( $data['query']);
die()
$this->load->view('backend/pages/pages',$data);
}
了解更多信息
答案 2 :(得分:0)
我自己尝试过,这就是我调用的URL的问题。我的两个页面看起来相似。并且意外地调用了明显不起作用的错误URL。