从视图向控制器传递和隐藏值-Codeigniter

时间:2019-05-13 12:01:00

标签: php codeigniter

我正在尝试将视图中的值传递给codeigniter中的控制器。当我将值传递给控制器​​时,这些值会显示在我的网址中。如何在不显示url的情况下传递值?

查看

<p class="info"><a href="<?php echo base_url("customer/details/" . $customer->id . "/" . $customer->card . "/data"); ?>" 
class="css">Submit</a></p>

控制器

公共功能option_standard()

{
    $data['id'] = $this->uri->segment(3);
    $data['amt'] = $this->uri->segment(4);
    $data['page_content'] = 'customer/details';
    $this->load->view(layout, $data);
}

3 个答案:

答案 0 :(得分:0)

只需通过URL传递customer_id,然后使用customer_id检索要在下一页显示的数据。您也可以使用隐藏的HTML字段来传递数据。

答案 1 :(得分:0)

您在不使用POST的情况下通过的所有内容都将显示在查询字符串中。就是这样。 如果您不能或不会切换到POST,则最好的选择是将通过查询字符串传递的数据量减少到绝对最小值(也许只是客户ID),然后让控制器提取其余的数据。不过请记住,您仍然需要验证输入。

如果表单使用GET而不是POST传递数据,则

隐藏的字段(仅适用于表单)也将在查询字符串中显示,因此在您的情况下使用这些字段没有好处。

另一种替代方法是使用Ajax将数据传递回控制器,但数据仍将在浏览器的控制台中可见,因此就安全性(或晦涩性)而言,不会有任何实质意义。

答案 2 :(得分:0)

与其将$customer->id传递到URL中,不如将其存储为在链接的URL上检索的会话数据。