在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>
有人可以帮助我解决这个问题吗?
答案 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段