我是codeIgniter的新手,我的数据库和下拉菜单有点麻烦。
这是我获取所需信息的功能......
protected $tbl_name = 'club';
public function get($id = 0, $object = TRUE)
{
// select * from users where id = 0
// check if id is provided
if($id) {
// id provided - retrieve a specific user
$query = $this->db->get_where($this->tbl_name, array('id' => $id));
// check if object type is requested
if($object) {
// object is requested
$data = $query->row();
}
else {
// array is requested
$data = $query->row_array();
}
}
else {
// id not provided - retrieve all users
$query = $this->db->get($this->tbl_name);
// check if object type is requested
if($object) {
// object is requested
$data = $query->result();
}
else {
// array is requested
$data = $query->result_array();
}
}
return $data;
}
这是我在控制器中调用的地方
$data['clubname'] = $this->club_model->get();
这是我对下拉列表的看法
<tr><td><?php echo form_label('Club Name: ', 'clubname'); ?></td><td><?php echo form_dropdown('clubname', $clubname['name']); ?></td><td><?php echo form_error('clubname'); ?></td></tr>
但我收到了这些错误
A PHP Error was encountered
Severity: Notice
Message: Undefined index: name
Filename: individual/individual_club.php
Line Number: 7
A PHP Error was encountered
Severity: Warning
Message: Invalid argument supplied for foreach()
Filename: helpers/form_helper.php
Line Number: 331
我做错了什么?
答案 0 :(得分:1)
问题出在form_dropdown('clubname', $clubname['name'])
来电。第二个参数是错误的。 form_dropdown
需要一个数组。 See the documentaiton
根据您的查询结果,您需要构建一系列俱乐部。有点像:
// array is requested
$data = array();
foreach ($query->result_array() as $row)
{
$data[$row['club_id']] = $row['club_name'];
}
将club_id
和club_name
替换为您的表的列名,以获取俱乐部的名称和ID。之后,将form_dropdown
更改为form_dropdown('clubname', $clubname)
。
像这样,$clubname
是一系列俱乐部。
希望这有帮助!