如何使用Codeigniter将url作为参数从视图传递到控制器

时间:2019-10-08 13:29:11

标签: php codeigniter

在codeigniter中使用带有参数的函数时遇到问题。我想编写一个函数,当我们单击视图中的URL时,该函数会自动使用该URL地址作为参数来连接到我在控制器中创建的函数。

我已经使用

 this->load->helper('url','form','array');

查看

 <?php 
 foreach ($dataView as $items){
    echo "<a href='".site_url("testcontroller/click/".$items['serviceURL']."")."'>".$items>['serviceURL']."</a>".'<br>';    
 ?>

控制器

 <?php

 public function click($url=null){

      var_dump($url);
      $datauri['url']=$url;
 }
 ?>

使用虚拟变量时,我看到已经传递的URL只是

  < string(5) "http:">

,但应为完整的URL,例如

<http://sos.maracoos.org/stable/sos/hrecos/stationHRLCK8H-agg.ncml>

有人可以帮助我解决这个问题吗?

3 个答案:

答案 0 :(得分:0)

您可以使用此:

public function click($url=null)
{
    var_dump($this->uri->segment('3'));
    $datauri['url']=$this->uri->segment('3');
}

答案 1 :(得分:0)

要获取网址,您必须将整个网址作为参数传递。在控制器中,您可以接收url作为参数。在这里,您没有将url作为参数传递。

答案 2 :(得分:0)

首先尝试使用urlencode()对网址进行编码,如下所示:

foreach ($dataView as $items){
    echo "<a href='".site_url("testcontroller/click/".urlencode($items['serviceURL'])."")."'>".$items>['serviceURL']."</a>".'<br>';    
}

我认为/之后的http:被解释为另一个URL段