Codeigniter从视图中将id传递给控制器

时间:2013-02-23 19:59:24

标签: codeigniter

我正在为这个项目使用codeigniter。我有一个id值,我从控制器A传递到视图A.这个id值是一个锚标签之间的回声。当单击此锚标记时,它会重定向到具有id值的另一个控制器B并在控制器B中处理此id值。除了使用uri类之外,还有其他方法吗?想要保持网址清洁。

当我从控制器A转换到视图A到控制器B时,我想到了一种附加隐藏输入元素的方法,但我意识到它可能非常混乱。

任何干净的方法吗?先谢谢你们!

2 个答案:

答案 0 :(得分:11)

使用Stackoverflow的新功能看看您是否能理解我的布局:

<方法1

使用URI类,除非你有充分的理由不这样做。

来自CONTROLLER_A

$data["id"] = ("ID NUMBER");
$this->load->view("VIEW_A", $data);

观看A中的主持人

<a href="<?php echo base_url() ?>/controller_b/controllerfunction/<?php echo $id ?>">link</a>

IN CONTROLLER_B

$id = $this->uri->segment(3);

<方法2

如果您想隐藏内容,请使用FORM POST:

$data["id"] = ("ID NUMBER");
$this->load->view("VIEW A", $data);

观看A中的主持人

<form name="myform" id="myform" action="<?php echo base_url() ?>/controllerB/controllerfunction/" method="post">
<input type="hidden" name="id" id="id" value="<?php echo $id ?>" />
<input type="submit" value="See more" />
</form>

您还可以使用javascript通过链接在此处提交表单,如果您是:

 <a href="javascript;" onclick="document.getElementById('myform').submit();"> See more</a>

提示:您也可以使用css通过将不透明度设置为0来隐藏表单中的提交按钮; 如果链接在表单中,您可以使用javascript:this.submit();

或JQUERY

<a href="javascript;" id="link">See more</a>
$('#link').click(function() {
    $('#myform').submit();
});

IN CONTROLLERB

$id = $this->input->post("id");

答案 1 :(得分:1)

很好的隐藏输入将起作用,并且可能有另一种解决方法,一旦您重定向到该方法并使用您的id值,即从数据库获取数据,再次使用您需要的干净URL重定向到另一个控制器方法,希望这是有帮助的< / p>