我使用codeigniter的MVC构建一个表单,登录的用户可以发布问题。
我使用的表单允许登录用户在名为Questions的mysql表中插入数据(表结构如下所示)。
问题表
______________________________________________
| id | User id | description | category |
|---------------------------------------------|
|1 | 22 | Car parts | 12 |
|---------------------------------------------|
|2 | 54 | Car parts | 8 |
|---------------------------------------------|
|3 | 112 | Car parts | 11 |
|_____________________________________________|
用户提交表单后,用户的ID和category_id(来自下表"用户表")将插入上方的问题表
用户表
___________________________________
| id | User id |category_id |
|-------------------------------
|1 | 22 | 12 |
|------------------------------ |
|2 | 54 | 54 |
|---------------------------- |
|3 | 112 | 8 |
|_________________________________|
我的控制器页码
$this->load->model('questions_page');
$data['page_detail'] = $this->questions_page->get_business_page_by_pid($page_id);
if ($this->form_validation->run() == false || $form_validation == false)
{
$data['form_value'] = array(
'country' => $this->input->post('description'),
'street_address' => $this->input->post('street_address'),
'post_code' => $this->input->post('post_code'),
);
$this->load->view('template', $data);
}
这是我的查看页面
<input type="text" name="post_code" value="<?= $form_value['description'] ?>">
<?php echo form_error("description"); ?>
<input type="text" name="post_code" value="<?= $form_value['street_address'] ?>">
<?php echo form_error("street_address"); ?>
<?php // I gathered some info from the users table below which needs to be inserted into the questions table
////////////////////////////
///////////////////////////
$page_detail->category_id;
////////////////////////////
///////////////////////////
?>
我的问题 我在最后一行( $ page_detail-&gt; category_id; )的视图页面中有数据,我想将其传输到控制器页面,以便我可以使用它将其插入到mysql表中 $ data [&#39; form_value&#39;] = array(); ,如控制器页面所示。
我该怎么做?
将数据从视图传输到控制器是否安全?
提前致谢
答案 0 :(得分:1)
第一名:您在问题表中存储用户ID ,以便在两个表之间创建关系,以便加入< / strong>两个包含用户ID 的表格,以便您可以从用户表中获取类别ID 。所以不需要在问题表中存储类别ID。这是不必要的。如果你存储。它被称为数据冗余。
第二名:猜猜用户ID将来自会话。
第3名仍然希望将category_id从视图传递到控制器意味着只使用一些隐藏的输入
<input type='hidden' name="category_id" value="<?php echo $page_detail->category_id; ?>" />
在控制器中:
$data['form_value'] = array(
'country' => $this->input->post('description'),
'street_address' => $this->input->post('street_address'),
'post_code' => $this->input->post('post_code'),
'category_id' => $this->input->post('category_id'),
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
);
答案 1 :(得分:0)
将值保存在hidden类型的输入框中,以便提交表单并在控制器中获取类别值
如下所示
<input type="hidden" name="category" value="<?= $page_detail->category_id;?>">