CodeIgniter / PHP:如何在 .php 视图页面中获取 URI

Posted

技术标签:

【中文标题】CodeIgniter / PHP:如何在 .php 视图页面中获取 URI【英文标题】:CodeIgniter / PHP: How to get URI in .php view page 【发布时间】:2015-11-04 12:55:52 【问题描述】:

我遇到了与该用户类似的问题:How to add active class to codeigniter hyperlinks?

答案是将以下内容插入到 .php 视图页面中:

<a class="<?php if($this->uri->segment(1)=="search")echo "active";?>" href="<?=base_url('search')?>">
        <i class="icon-search"></i>
        <span>BEDRIJF ZOEKEN</span>
</a>

当我将它插入我的页面时,即使我的 URL 是“搜索”,它也不会将“活动”类分配给链接标记。我试过这样做:

<?php 
$uri = $this->uri->segment(1);
echo "<script type='text/javascript'>alert('$uri');</script>";
?>

它什么都不提醒(提醒框不显示任何东西)。我还尝试提醒以下内容:

$this->uri->uri_string()

我得到相同的结果(一个空的警报框)。我错过了什么?

编辑:我的控制器是 Pages.php:

<?php
class Pages extends CI_Controller 

    public function view($page = 'home') 

        if ( ! file_exists(APPPATH.'/views/pages/'.$page.'.php'))
        
            // Whoops, we don't have a page for that!
            show_404();
        

        $data['title'] = ucfirst($page); // Capitalize the first letter
        $this->load->view('templates/header', $data);
        $this->load->view('pages/'.$page, $data);
        $this->load->view('templates/footer', $data);
    


?>

【问题讨论】:

你的控制器名称是什么?? @Abdulla 我的控制器名称是 Pages。我将编辑我的页面并显示我的控制器。 发布有问题的链接 @MeeneshJain 我的链接?我的网站现在正在开发中(我在 localhost 上运行它)。 你能vardump你的$this-&gt;uri-&gt;segment(1)看看它有什么吗? 【参考方案1】:

试试这个

<a class="<?php if($this->uri->segment(1)=="Pages")echo "active";?>" href="<?=base_url('Pages')?>">
        <i class="icon-search"></i>
        <span>BEDRIJF ZOEKEN</span>
</a>

$this-&gt;uri-&gt;segment(1) 表示www.example.com/Pages/my_Method

    Base URL = www.example.com $this-&gt;uri-&gt;segment(1) = Pages $this-&gt;uri-&gt;segment(2) = my_Method

【讨论】:

哦,好吧,这行得通(我只是将“Pages”更改为“pages”,因为人们通常以小写形式输入 URL)。 @user2719875 是的。主机将区分大小写 主机会区分大小写吗? “主机”到底是什么意思? host 表示在线服务器 但是 localhost 完全没有坏处。但是服务器不是那样的。我对这种错误有很多经验。任何乐于助人的方式:【参考方案2】:

正如我所见,您正在尝试将当前菜单应用为 class='active'。我对你的建议是,而不是找到 uri 并匹配它。您可以对控制器和视图使用以下方法。

控制器

$data['active_menu'] ='search'

$data['active_menu'] ='home'

$data['active_menu'] ='help'

   `$this->load->view('templates/header', $data);
    $this->load->view('pages/'.$page, $data);
    $this->load->view('templates/footer', $data);`

查看页面 (Home_view.php/search_view.php/help_view.php)

<a class="<?php if($active_menu=="search")echo "active";?>" href="<?=base_url('Pages')?>"> <i class="icon-search"></i> <span>BEDRIJF ZOEKEN</span> </a>

【讨论】:

以上是关于CodeIgniter / PHP:如何在 .php 视图页面中获取 URI的主要内容,如果未能解决你的问题,请参考以下文章

CodeIgniter / PHP:如何在 .php 视图页面中获取 URI

如何在 Windows Azure 上重写 Codeigniter 的 index.php

如何删除codeigniter路径中的“index.php”

如何在 Codeigniter 中重定向和删除 index.php [重复]

Codeigniter 表单打开如何删除 index.php

如何在 html + php(codeIgniter) 中渲染树