【发布时间】:2016-09-30 12:57:42
【问题描述】:
我是第一次使用 codeigniter。我习惯了 MVC,但只有 .net,而不是 PHP。
所以,我有一个表“类别”、一个表“国家”和一个表“类别国家”。假设前两个表只有“id”和“name”,第三个表有“country_id”和“category_id”。一个类别可以分配多个国家/地区。
我已经准备好创建和编辑类别的模型、视图和控制器。
编辑功能
型号:
function get_category_by_id($id)
{
$query = $this->db->get_where('categories',array('id'=>$id));
if($query->num_rows()<=0)
{
echo 'Invalid category id';die;
}
else
{
return $query->row();
}
}
查看:
<form class="form-horizontal" id="addcategory" action="<?php echo site_url('admin/category/updatecategory');?>" method="post">
<input type="hidden" name="id" value="<?php echo $post->id;?>"/>
<div class="form-group">
<label class="col-sm-3 col-md-3 control-label"><?php echo lang_key_admin('name');?>:</label>
<div class="col-sm-4 col-md-4 controls">
<input type="text" name="name" value="<?php echo $post->name;?>" placeholder="<?php echo lang_key_admin('type_something');?>" class="form-control input-sm" >
<?php echo form_error('title'); ?>
</div>
</div>
</form>
控制器:
public function edit($id='')
{
$value['post'] = $this->category_model->get_category_by_id($id);
$data['title'] = lang_key_admin('edit_category');
$data['content'] = load_admin_view('categories/editcategory_view',$value,TRUE);
load_admin_view('template/template_view',$data);
}
public function updatecategory()
{
$this->form_validation->set_rules('name', lang_key_admin('name'), 'required');
if ($this->form_validation->run() == FALSE)
{
$id = $this->input->post('id');
$this->editcategory($id);
}
else
{
$id = $this->input->post('id');
$data = array();
$data['name'] = $this->input->post('name');
$this->category_model->update_category($data,$id);
$this->session->set_flashdata('msg', '<div class="alert alert-success">'.lang_key_admin('data_updated').'</div>');
redirect(site_url('admin/category/edit/'.$id));
}
}
现在我想向该视图添加一个选择列表(多选),这样我就可以选择要分配给该类别的国家,并将关系存储在第三个表中。我该怎么做?我必须在列表中显示所有国家并能够选择我想要的国家。我还希望已指定的国家/地区在页面加载时显示在列表中。
【问题讨论】:
标签: php mysql codeigniter