Php 在codeigniter视图中使用foreach生成选择选项
我正在使用codeigniter生成一些html选项,但我只得到一个结果,即表中的第一个结果 这是我的控制器Php 在codeigniter视图中使用foreach生成选择选项,php,codeigniter,Php,Codeigniter,我正在使用codeigniter生成一些html选项,但我只得到一个结果,即表中的第一个结果 这是我的控制器 public function edit_event($id = 0){ $id = $this->uri->segment(3); $current_id = $this->ion_auth->get_user_id(); $data['data'] = $this->as->the_event_edit($id);
public function edit_event($id = 0){
$id = $this->uri->segment(3);
$current_id = $this->ion_auth->get_user_id();
$data['data'] = $this->as->the_event_edit($id);
$data['groups'] = $this->as->the_groups_list($current_id);
$this->load->view('editevent',$data);
}
这是我的模型
public function the_groups_list($current_id){
$query = $this->db->get_where('all_groups', array('group_owner' => $current_id));
foreach ($query->result() as $row)
{
$data = array(
'group_title' => $row->group_title,
'group_name' => $row->group_name,
'group_owner' => $row->group_owner
);
return $data;
}
}
这是另一种型号
public function as_event_edit($id){
$query = $this->db->get_where('all_scheduled_messages', array('id' => $id));
foreach ($query->result() as $row)
{
$data = array(
'as_title' => $row->as_title,
'as_event_name' => $row->as_event_name,
'as_owner' => $row->as_owner,
'as_type' => $row->as_type,
'as_target_dataset' => $row->as_target_dataset,
'as_timestamp' => $row->as_timestamp,
'as_time' => $row->as_time,
'as_day' => $row->as_day
);
return $data;
}
}
然后,我在视图中使用$groups['group\u title']
,仅显示第一个组标题,即使我从其他行中有4个组标题
如何返回一个数组并将其传递给视图,以便使用foreach迭代和显示组标题?将模型从
$data=
更改为$data[]=
,以插入每一行,而不是仅插入一行
在组上的视图循环中,如下所示:
foreach ($data as $group) {
echo "Title" . $groups['group_title'];
}
RTM: 在控制器中:将$data['data']重命名为$data['event']
$data['event'] = $this->as->the_event_edit($id);
$data['groups'] = $this->as->the_groups_list($current_id);
$this->load->view('editevent',$data);
在你看来:
foreach ($event as $items) {
var_dump($items);
}
foreach ($groups as $group) {
var_dump($group);
}
在模型中,您没有创建多维数组。您需要使用计数器添加密钥:
$data = array();
$i=0;
foreach ($query->result() as $row){
$data[$i]['as_title'] = $row->as_title;
$data[$i]['as_event_name'] = $row->as_event_name;
$data[$i]['as_owner'] = $row->as_owner;
$data[$i]['as_type'] = $row->as_type;
$data[$i]['as_target_dataset'] = $row->as_target_dataset;
$data[$i]['as_timestamp'] = $row->as_timestamp;
$data[$i]['as_time'] = $row->as_time;
$data[$i]['as_day'] = $row->as_day;
$i++;
);
return $data;
或者使用传入数组的键
$data = array();
foreach ($query->result() as $id => $row){
$data[$id]['as_title'] = $row->as_title;
$data[$id]['as_event_name'] = $row->as_event_name;
$data[$id]['as_owner'] = $row->as_owner;
$data[$id]['as_type'] = $row->as_type;
$data[$id]['as_target_dataset'] = $row->as_target_dataset;
$data[$id]['as_timestamp'] = $row->as_timestamp;
$data[$id]['as_time'] = $row->as_time;
$data[$id]['as_day'] = $row->as_day;
);
return $data;
使用
$data[]=array(…
而不是$data=array(
我应该如何在视图中访问它?我忘了提到我有另一行将一些其他数据传递到视图$data['data']=$this->as->the_event_edit($id);