Php 在url中查找父目录并与导航url进行比较
基本上,我有一个导航菜单,目前如果我去一个网页上的网站,它会添加'当前'类的导航菜单项,所以我可以改变它的风格。像这样:Php 在url中查找父目录并与导航url进行比较,php,jquery,url,navigation,Php,Jquery,Url,Navigation,基本上,我有一个导航菜单,目前如果我去一个网页上的网站,它会添加'当前'类的导航菜单项,所以我可以改变它的风格。像这样: jQuery(document).ready(function($){ var path = window.location; $('#nav a[href="'+path+'"]').addClass('current'); }); 我想扩展它以包括它下面的任何页面。我看到一些帖子解释了你是怎么做的,但似乎对我没什么用。url相当长,站点严重依赖url中的
jQuery(document).ready(function($){
var path = window.location;
$('#nav a[href="'+path+'"]').addClass('current');
});
我想扩展它以包括它下面的任何页面。我看到一些帖子解释了你是怎么做的,但似乎对我没什么用。url相当长,站点严重依赖url中的参数,因此类型url可能是example.com/path1/path2/?id=9238293&name=test
不确定jquery是否是最好的方法?如果可能的话,也可以在PHP中使用 您可以在PHP中使用:
<?php
//$url = 'http://example.com/path1/path2/?id=9238293&name=test';
$url = $_POST['path'];
//REMOVE THE LAST PARAMETER IN URL ?id=9238293&name=test';
$paths = explode('?',$url);
$paths = count($paths) ? $paths[0] : $paths; //if have parameter or not
$paths = explode('/', $paths); //SEPARATE THE URL
if (!$paths[count($paths)-1]){
unset($paths[count($paths)-1]); //VERIFY IF THE URL ENDS WITH '/'
}
$count = count($paths);
//THEN YOU HAVE
//YOUR CURRENT PAGE
//print "Current page: ".$paths[$count-1];
//print "Mother page: ".$paths[$count-2];
//THEN YOU CAN COMPARE THE MOTHER PAGE WITH ONE EXISTING MENU PAGE
//IN YOUR EXAMPLE YOU CAN GO:
$return = array();
$site = "http://example.com/";
$current = $paths[$count-1];
$mother = $paths[$count-2];
$return['current'] = $site.$mother.'/'.$current; //THAT WAY YOU STRIP THE PARAMETERS TO GET THIS ON YOUR JAVASCRIPT
$return['mother'] = $site.$mother;
print json_encode($return);exit;
?>
你怎么知道一个页面是否在另一个页面下?(通过查看url)如何构建菜单?它是用PHP构建的还是仅仅是一个静态的html块?你能展示你的代码吗?嗨,谢谢,这很有意义,但是有点和“你的php脚本url”混淆了。你是说我做了一个include_一次似乎阻止了页面加载,虽然没有抛出任何明显的错误。我不明白你说了什么!“你是说我做了一次include_似乎阻止了页面加载,但没有抛出任何明显的错误”这句话是什么意思。呵呵
<script>
jQuery(document).ready(function($){
var path = window.location;
//very important!
path = path.toString();
$.post('YOUR PHP SCRIPT URL',{path:path},function(data){
$('#nav a[href="'+data.current+'"]').addClass('current');
$('#nav a[href="'+data.mother+'"]').addClass('current');
},'json');
});
</script>