在 CodeIgniter 中从数据库中获取下拉列表
Posted
技术标签:
【中文标题】在 CodeIgniter 中从数据库中获取下拉列表【英文标题】:Getting a drop down list from a database in CodeIgniter 【发布时间】:2017-03-08 13:14:27 【问题描述】:我是 CodeIgniter 的新手,我一直在尝试使用数据库中的数据填充视图页面上的下拉列表,但没有成功。我尝试使用这个问题的建议,但下拉菜单仍然是空的 (display data from database to dropdown CodeIgniter)
这是我的看法:
<label>City</label>
<select class="form-control>
<option value="">All</option>
<?php
foreach($groups as $city)
echo '<option value="'.$city['cityidd'].'">'.$city['city'].'</option>';
?>
</select> <br/>
这是我的控制器:
<?php
class Main_controller extends CI_Controller
function __construct()
parent::__construct();
$this->load->helper('url');
$this->load->database();
public function index()
$this->load->helper('form');
$this->load->view('supplier_add');
这是我的模型:
class Site_model extends CI_Model
public function __construct()
/* Call the Model constructor */
parent::__construct();
function getAllGroups()
$query = $this->db->query('SELECT city FROM citys');
return $query->result();
表名是“citys”,对应的列头是“cityidd”和“city”
【问题讨论】:
在construct()中你可以像这样加载模块$this->load->model('Site_model');。然后在索引函数 $data['city']=$this->Site_model->getAllGroups(); 您得到的是否有任何错误或显示输出? 【参考方案1】:那里发现了几个问题。进行如下更改
function __construct()
parent::__construct();
$this->load->helper('url');
$this->load_model('Site_model');
$this->load->database();
public function index()
$this->load->helper('form');
$data['groups'] = $this->site_model->getAllGroups();
$this->load->view('supplier_add',$data);
最终模型
function getAllGroups()
$query = $this->db->query('SELECT cityidd,city FROM citys');
return $query->result_array();
现在开始测试
【讨论】:
哇!像魅力一样工作!我的下拉列表现在已填充。谢谢 Rejoanul Alam 如果我想从数据库中填充许多下拉列表怎么办?我是否要为其他下拉菜单添加查询,或者我该怎么做?例如,表格仍然是“城市”,然后其他相应的列标题是“id”和“paymentmodes”,用于另一个选项 是的,使用不同的查询,使用不同的方法,如getAllGroups()
【参考方案2】:
首先将您的 SELECT 查询更改为
SELECT cityidd, city FROM citys
在控制器的 index() 中将代码更改为
public function index()
$this->load->helper('form');
$data['groups'] = $this->site_model->getAllGroups();
$this->load->view('supplier_add',$data);
【讨论】:
【参考方案3】:您必须调用您的模型方法并将其传递给控制器中的视图,代码:
public function index()
$this->load->helper('form');
$this->load->model('site_model');
$data['groups'] = $this->site_model->getAllGroups();
$this->load->view('supplier_add',$data);
如果你在 linux 上工作,不要忘记大小写名称!
【讨论】:
【参考方案4】:类 Main_controller 扩展 CI_Controller
function __construct()
parent::__construct();
$this->load->helper('url');
$this->load->database();
$this->load->model('Site_model');
public function index()
$this->load->helper('form');
$data['groups']=$this->Site_model->getAllGroups();
$this->load->view('supplier_add',$data);
这是我的模型:
class Site_model extends CI_Model
public function __construct()
/* Call the Model constructor */
parent::__construct();
function getAllGroups()
$query = $this->db->query('SELECT * FROM citys');
return $query->result();
这样试试
【讨论】:
【参考方案5】:进行这些更改
IN 模型将数据转换为数组,因为您将其用作视图中的数组,因此更改为这个
function getAllGroups()
$query = $this->db->query('SELECT * FROM citys');
return $query->result_array();
在控制器中
public function index()
$this->load->helper('form');
$this->load->model('site_model');
$data['groups'] = $this->site_model->getAllGroups();
$this->load->view('supplier_add',$data);
【讨论】:
【参考方案6】:你没有加载模型加载模型 例如:-
function __construct()
parent::__construct();
$this->load->helper('url');
$this->load->model('Site_model')
$this->load->database();
public function index()
$this->load->helper('form');
$data['record']=$this->Site_model->getAllGroups()
$this->load->view('supplier_add', $data);
型号:- 类 Site_model 扩展 CI_Model
public function __construct()
/* Call the Model constructor */
parent::__construct();
function getAllGroups()
$query = $this->db->query('SELECT city FROM citys');
return $query->result();
【讨论】:
以上是关于在 CodeIgniter 中从数据库中获取下拉列表的主要内容,如果未能解决你的问题,请参考以下文章
如何在codeigniter中将ajax选择的依赖下拉选项传递给mysql数据库
在 PHP CodeIgniter foreach 循环中从数据库中提取和更新数据