2014-03-06 20 views
0

嗨,专业人士有一个美好的一天。如何避免在URL中传递参数

我是这个Codeigniter框架的新手。

问题1:如何避免在url中传递参数或是否有任何其他选项(如使用虚拟值或默认值而不是传递原始值)?

例子:目前,我有这样的

http://localhost/manage?keyword1=SAP&keyword2=LAB

,但我希望它是这样

http://localhost/manage?keyword1=XXX&keyword2=YYY 

问题2:我已经看到了一些例子,在他们正在使用重映射功能来完成这项任务,但我没有得到如何重映射工作。这是对的吗?

请给你的建议,并告诉我正确的方式,并抱歉它可能是一个愚蠢的问题,但我搜查了很多我什么都没有。由于事先在Codeignitor

+0

是'manage'控制器名称? –

+0

@kumar_v yes.manage是控制器名称 – kamesh

+0

然后您可以在索引函数中设置默认参数。 –

回答

1

你必须通过这样的http://localhost/manage/controller/method/xxx/yyy

然后在控制器

function method ($x , $y) 
{ 
    echo $x; 
    echo $y; 
} 
+0

如果$ x = SAP和$ y = LAB它会是这样的http:// localhost/manage/controller/method/SAP/LAB,但我希望它是这样的http:// localhost /管理/控制器/方法/ XXX/YYY ..我想隐藏原始参数 – kamesh

+0

然后你传递参数编码,然后解码成方法 –

+0

是唯一的方法在codeigniter中这样做? – kamesh

1
function somefunction ($param1 = null, $param2 = null) 
{ 



} 

如果PARAMS都没有通过,那么它将缺省值null,但如果参数通过,那么你可以像这样处理它们:

function somefunction ($param1 = null, $param2 = null) 
{ 
    $param1 = intval($param1) //if you want it to be int 
    $param2 = floatval($param2) //if you want it to be float 


} 

如果你想直观地更改浏览器的参数,然后就其重定向到这样的:

function somefunction ($param1 = null, $param2 = null) 
{ 
    if($param1 == null || $param2 == null) 
    { 
     $param1 = 'XXX'; //put any value you want by your logic 
     $param2 = 'YYY'; //put any value you want by your logic 
     header("Location: http://localhost/manager/somefunction/".$param1.'/'.$param2); 
    } 


} 
0

CI中,有一个名为“会话”库。在这个库中有一个叫做flashdata的功能。这就像一个$ _POST方法,但它不需要表单。

举例: 要设置变量flashdata:

$this->session->set_flashdata('example', $variable1); 

“示例”是你flashdata和$变量的名字就是它的存储。

要进入下一个页面上的数据:

$variable2 = $this->session->flashdata('example'); 

$变量2,然后将等于你设置$变量1为上一个页面中。

希望这会有所帮助!只是通过URL传递参数的替代方法。