将变量从View页面传输到codeigniter中的Controller页面是否理想?

时间:2017-08-18 10:01:57

标签: php mysql codeigniter

我使用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(); ,如控制器页面所示。

我该怎么做?

将数据从视图传输到控制器是否安全?

提前致谢

2 个答案:

答案 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;?>">