这是控制器submenu.php
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Submenu extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->library('form_validation');
$this->load->model("submenu_model");
}
public function index()
{
$arr['page'] = 'submenu';
$qry ='Select * from subcategory';
$arr['submenu'] = $this->db->query($qry)->result_array();
//$data['view']='edit';
$this->load->view('admin/vwAddSubmenu',$data);
}
public function add_submenu()
{
if(isset($_POST['submit']))
{
$name = mysql_real_escape_string($_POST['name']);
$url = $_POST['url'];
$cat = $_POST['category'];
$result = $this->submenu_model->insert_subcategory($name,$url,$cat);
if(isset($result))
{
echo 'insert successfully';
redirect('admin/submenu/');
}
else
{
echo 'insert Failed';
}
}
$arr['page'] = 'submenu';
$data['category'] = $this->submenu_model->get_category();
$this->load->view('admin/vwManageSubmenu',$arr);
$this->load->view('admin/vwAddSubmenu',$arr);
//$this->load->view('admin/vwAddSubmenu',$arr,$data);
}
}
这是视图
<form method="post" action="<?php echo base_url() ?>admin/submenu/add_submenu">
<input type="text" name="name" value="Sub Category Name">
<input type="text" name="url" value="Sub Category URL">
<select name="category">
<?php
foreach ($category as $item)
{ ?>
<option id="<?php echo $item['id'] ?>"><?php echo $item['name'] ?></option>
<?php } ?>
</select>
<input type="submit" name="submit" value="Add Sub Category">
</form>
这是模型submenu_model.php
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Submenu_model extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->library('form_validation');
if (!$this->session->userdata('is_admin_login'))
{
redirect('admin/home');
}
}
public function index()
{
$arr['page'] = 'submenu';
$qry ='Select * from subcategory';
$arr['submenu'] = $this->db->query($qry)->result_array();
//$data['view']='edit';
$this->load->view('admin/vwManageSubmenu',$arr);
}
public function add_submenu()
{
if(isset($_POST['submit']))
{
$name = mysql_real_escape_string($_POST['name']);
$url = $_POST['url'];
$cat = $_POST['category'];
$result = $this->submenu_model-
>insert_subcategory($name,$url,$cat);
if(isset($result))
{
echo 'insert successfully';
redirect('admin/submenu/');
}
else
{
echo 'insert Failed';
}
}
$arr['page'] = 'submenu';
$data['category'] = $this->submenu_model->get_category();
$this->load->view('admin/vwAddSubmenu',$data);
//$this->load->view('admin/vwAddSubmenu',$arr,$data);
}
}
现在在http://localhost/admin/admin/submenu 在下拉列表中显示错误
遇到PHP错误 严重性:注意 消息:未定义的变量:类别 文件名:admin / vwAddSubmenu.php 行号:48 遇到PHP错误 严重性:警告 消息:为foreach()提供的参数无效 文件名:admin / vwAddSubmenu.php 行号:48 解决方案是什么?
答案 0 :(得分:0)
在控制器中:
<?php
if (!defined('BASEPATH')) exit('No direct script access allowed');
class Submenu extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->library('form_validation');
$this->load->model("submenu_model");
}
public function index()
{
$arr['page'] = 'submenu';
$qry = 'Select * from subcategory';
$arr['submenu'] = $this->db->query($qry)->result_array();
$this->load->view('admin/vwAddSubmenu', $arr); //passing data to view
}
public function add_submenu()
{
if (isset($_POST['submit']))
{
$name = mysql_real_escape_string($_POST['name']);
$url = $_POST['url'];
$cat = $_POST['category'];
$result = $this->submenu_model->insert_subcategory($name, $url, $cat);
if (isset($result))
{
echo 'insert successfully';
redirect('admin/submenu/');
}
else
{
echo 'insert Failed';
}
}
$arr['page'] = 'submenu';
$arr['category'] = $this->submenu_model->get_category();
//$this->load->view('admin/vwManageSubmenu', $arr); //loading two views
$this->load->view('admin/vwAddSubmenu', $arr); //passing data to view
}
}
在模型中 - 应该是这样的
class submenu_model extends CI_Model {
function __construct()
{
// Call the Model constructor
parent::__construct();
}
function insert_subcategory()
{
//code for insert
}
function get_category()
{
$query = $this->db->get('category_table');
return $query->result();
}
参考https://ellislab.com/codeigniter/user-guide/general/models.html
控制器$ arr ['子菜单']子菜单中的是传递给视图的变量。
在视图中:
<select name="category">
<?php
foreach ($submenu as $item)
{
?>
<option id="<?php echo $item['idsubcategory']; ?>">
<?php echo $item['namesubcategory']; ?></option>
<?php } ?>
</select>
答案 1 :(得分:0)
<?php
class Submenu_model extends CI_Model {
function __construct(){
parent::__construct();
$this->load->database();
}
function get_category()
{
$query = $this->db->get('category');
return $query->result();
}
function insert_subcategory($name,$url,$cat)
{
$data = array(
'namesubcategory' => $name,
'urlsubcategory' => $url ,
'idcategory' => $cat
);
$this->db->insert('subcategory', $data);
}
}