我第一次使用codeigniter。我習慣於MVC,但只有.net,而不是PHP。codeigniter - 關係表
所以,我有一個表'類別',一個表'國家',和一個表'類別 - 國家'。假設前兩個表只有'id'和'name',第三個有'country_id'和'category_id'。一個類別可以有多個國家分配給它。
我有模型,視圖和控制器都準備好創建和編輯類別。
對於編輯functionallity
型號:
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));
}
}
現在我想爲該視圖添加一個選擇列表(多重選擇),以便我可以選擇要分配給該類別的哪些國家/地區,並將關係存儲在第三個表格中。我該怎麼做?我必須在列表中顯示所有國家,並能夠選擇我想要的。我也希望已經分配的國家在頁面加載時出現在列表中。
感謝您的提示。他們向我展示了道路。我會盡快發佈解決方案 – Hahn86