作为CI和PHP的新手,尤其是数组,我正在努力学习文档和教程。请不要指向我的文档,我一直在阅读它。
据我所知,我需要一个视图(表单),控制器和模型。模型通过类/函数连接到我的默认数据库连接(我的数据库是我的下拉列表国家/地区数据的存储位置),它返回一个数组,最后模型将数组解析为表单。
我奋斗的地方是如何将数组解析到视图中。因为我正在处理3个文件,要输出一个html文件,上下文非常重要,语法也是如此。我今天早些时候问了这个问题,几乎失去了理智,因为我得到的两个答案都是支离破碎而且脱离了背景。他们很有帮助,但我认为我比我知道得多。
换句话说,请明确,因为语法疏忽或知识假设可能让我头疼几个小时。提前谢谢!
这是我的尝试无法正常工作,基本上我在视图中使用的变量返回一个变量undefined error ...
查看/表格...
<body>
<?php echo form_open('form'); ?>
<h5>Country</h5>
<?php echo form_dropdown('', $data, '');?>
<div><input type="submit" value="Submit" /></div>
<?php echo form_close() ?>
</body>
我的控制器......
<?php
class Form extends CI_Controller {
function index()
{
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
$this->load->model('country');
$data['country'] = $this->country->get_country();
$this->load->view('myform', $data);
if ($this->form_validation->run() == FALSE)
{
$this->load->view('myform');
}
else
{
$this->load->database();
$sql = "INSERT INTO donations (country) VALUES (
".$this->db->escape($this->input->post('country')).";
$this->db->query($sql);
echo $this->db->affected_rows();
$this->load->view('formsuccess');
}
}
}
?>
我的模特......
<?php
class Country extends CI_Model
{
function get_country() {
$this->load->database();
$sql = ('select * from countries');
return $this->db->query($sql)->result();
}
}
?>
答案 0 :(得分:1)
<强>控制器强>
您有$data['country']
来自数据库的数据,但您没有将$ data添加到视图中。
使用$this->load->view('myform', $data);
将数据传递给视图。
查看强>
我相信codeigniter会在$data
中提取密钥:
所以,只需在视图中测试var_dump($data);
和var_dump($country)
和echo form_dropdown('country_dropdown', $country, '');
然后构建form_dropdown。
在视图中使用function get_country() {
$this->load->database();
$sql = ('select * from countries');
$query = $this->db->query($sql);
foreach($query->result_array() as $row) {
$data[$row['id']] = $row['name'];
}
return $data;
}
。
<强>模型强>
调整模型以返回form_dropdown所需的数组结构。
{{1}}