[英]how to solve the error in codeigniter?
這是控制器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解決方案是什么?
在控制器中:
<?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 ['submenu']子菜單中,子菜單是傳遞給視圖的變量。
在視圖中:
<select name="category">
<?php
foreach ($submenu as $item)
{
?>
<option id="<?php echo $item['idsubcategory']; ?>">
<?php echo $item['namesubcategory']; ?></option>
<?php } ?>
</select>
<?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);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.