douse8732
2016-05-13 11:26
浏览 46
已采纳

如何在codeigniter中创建动态方法?

I am creating a site using codeigniter with a controller process.php. In its index function it gets a list of countries from my db and lists in in my view with a hyperlink to each country. I would like each link to have a hyperlink of http://localhost/process/$countrycode where $countrycode is dependent on the country being clicked.

How do i create a method to have a link such as: http://localhost/process/us for united states http://localhost/process/ca for canada

the method will perform a task based on the country.

From what i understand with codeigniter urls, it is example.com/class/function/ID but what i would like to achieve is not to include the function in the URL

图片转代码服务由CSDN问答提供 功能建议

我正在使用带有控制器process.php的codeigniter创建一个站点。 在其索引函数中,它从我的数据库中获取国家列表,并在我的视图中列出了每个国家/地区的超链接。 我希望每个链接都有 http:// localhost / process / $ countrycode的超链接,其中$ countrycode依赖于 单击该国家。

如何创建方法以获得如下链接: http:// localhost / process / us http:// localhost / process / ca 对于加拿大

该方法将根据国家/地区执行任务。

根据我对codeigniter网址的理解,这是示例 .com / class / function / ID但我想要实现的不是在URL中包含该函数

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • dongshan6870 2016-05-13 12:57
    已采纳

    add the new route in your file route.php like this

    $route['add_route_name'] = 'controller/function';
    

    if you want to pass parameters use it like this

    $route['add_route_name/(:any)'] = 'controller/function';
    

    for integer

    $route['add_route_name/(:num)'] = 'controller/function';
    

    in codeigniter 3 use /(.*) for (:any) because the (:any) is not work for All parameters

    For example if you want to pass the parameters like this

    http://localhost/projectname/12/books/etc/
    

    in the above url I'm passing 3 parameters which is not getting with (:any) but whit /(.*) I'm getting the Array of the 3 parameters.

    use it like this.

    $route['add_route_name/(.*)'] = 'controller/function';
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • dre93205 2016-05-13 12:47

    as far as i understand from your question, you should load view and pass countries to this view as $this->load->view('view_name',$array('countries'=>$countries_from_db)); then in view when you fill dropdown for example you will do the following:

    <?php foreach($countries as $count): <a href ='localhost/process/<?=$country_id?>'><?= $country_name?></a>}
    <?php endforeach;?>
    

    i wish it helps you :)

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题