如何避免在URL中传递参数

时间:2014-03-06 05:44:58

标签: php codeigniter url parameter-passing

嗨,专业人士度过了美好的一天。

我是这个Codeigniter框架的新手。

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

示例:目前我喜欢这个

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

但我希望它像这样

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

问题2:我看过一些例子,因为他们使用重映射功能来完成这项任务,但我没有得到 重新映射 的方式工作。这是正确的做法吗?

请给出你的建议,并告诉我正确的方式,抱歉这可能是一个愚蠢的问题,但我搜索了很多我没有做任何事情。提前谢谢

3 个答案:

答案 0 :(得分:1)

Codeigniter中的

你必须像http://localhost/manage/controller/method/xxx/yyy

那样传递

然后在控制器

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

答案 1 :(得分: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);
  }


}

答案 2 :(得分:0)

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

实施例: 要在flashdata中设置变量:

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

'example'是flashdata的名称,$ variable是它存储的内容。

要在下一页访问您的数据:

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

$ variable2将等于你在上一页中设置的$ variable1。

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