Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 提供奇怪URL的工具提示子菜单链接_Php_Jquery_Html_Css_Ajax - Fatal编程技术网

Php 提供奇怪URL的工具提示子菜单链接

Php 提供奇怪URL的工具提示子菜单链接,php,jquery,html,css,ajax,Php,Jquery,Html,Css,Ajax,我有一个使用jQueryAjax加载所有页面的站点。基本上,它就像。然后jquery将其提取并转到正确的文件夹,在末尾添加.php并将该文件加载到内容窗口中。然后它将href属性(在本例中为照片)放在url的末尾,并将#current_pg_attr放在url的末尾,因此如果内容窗口显示的是照片页面,则与www.mysite.com/#photos类似。在我的一个主菜单中,我有一个子菜单,仅在悬停和类似的情况下显示: <ul id="main_nav"><br />

我有一个使用jQueryAjax加载所有页面的站点。基本上,它就像
。然后jquery将其提取并转到正确的文件夹,在末尾添加.php并将该文件加载到内容窗口中。然后它将href属性(在本例中为照片)放在url的末尾,并将#current_pg_attr放在url的末尾,因此如果内容窗口显示的是照片页面,则与www.mysite.com/#photos类似。在我的一个主菜单中,我有一个子菜单,仅在悬停和类似的情况下显示:

<ul id="main_nav"><br />
    <li><a href="home">home</a></li><br />
    <li><a href="photos">photos</a><br />
        <div id="menu2_submenu_tooltip"><a href="?com=viewall">view all stuff</a></div><br />
    </li><br />
</ul>





现在,单击子菜单时会出现问题。比如,如果我单击“查看所有内容”,它会将我带到www.mysite.com/#?com=viewall,而不是www.mysite.com/?com=viewall#照片。我做错了什么?我认为这与在url中添加jquery这句话有关?这个错误url不是一个问题,因为我可以通过获取GET变量并加载该页面来解决它,但我仍然希望尝试将其正确。顺便说一下,这里是我的ajax jquery代码的一部分:

var curr_page_hash = window.location.hash;
    $('#main_center').load('content/' + curr_page_hash.substr(1) + '.php');
    window.location.hash = curr_page_hash;
    $('#left_nav ul li a').click(function() {
    var page = $(this).attr('href');
    $('#main_center').html('<div id="load_img"><img src="template/img/loading.gif" alt="Loading..." /></div>');
    $('#main_center').load('content/' + page + '.php');
    window.location.hash = '#' + page; 
            return false;     
    });
var curr\u page\u hash=window.location.hash;
$('#main_center').load('content/'+curr_page_hash.substr(1)+'.php');
window.location.hash=curr\u page\u hash;
$('left#nav ul li a')。单击(函数(){
var page=$(this.attr('href');
$('main#u center').html('');
$('#main_center').load('content/'+page+'.php');
window.location.hash='#'+页面;
返回false;
});

关于这个问题有什么帮助吗?

要查看原始哈希,您可以执行以下操作

// note I am not sure what window.location.hash returns if there is no hash but you should test that first to make this more efficient
var t = window.location;
var originalHash = "";
if(t.indexOf("#") > -1) {
   // grab the hash
   originalHash = window.location.hash;
}
这样就可以处理原始散列,现在要设置新页面,您可以保持代码的原样,并在最后执行此操作

// don't need to add # because it is in originalHash already, it is safe to add originalHash because if there is no # in URL then it will be empty string
window.location.hash = page + originalHash; 

如果您尝试了此操作,但无效,请确保您编辑了问题,并在单击处理程序中发布了最新代码

,它会抓取href并在其前面放置一个#,然后将其设置为哈希值。所以你得到的结果是正确的。如果你想把照片包括在内,你需要先抓取这个散列,按正确的顺序附加它。可能类似于window.location.hash=page+“#”+originalHash;你能给我举个例子说明怎么做吗?我大致了解了一下,但是如果我看到一个例子,我会有所帮助。我用上面的代码意识到的另一个问题是jquery风格的ajax页面加载。我拥有的子菜单就像链接到GET变量的子菜单。当我单击它时,jquery将页面重定向到GET变量+.php的名称。由于此页面不存在,因此未加载任何内容。现在的问题是我想停留在主菜单照片页面上,子页面只是在url中添加了GET变量,因此主照片页面会随着GET变量的变化而变化。因此,在照片页面上有这样的代码:“如果($\u GET['com']=='viewall'){//do something}”,你应该发布另一个问题,因为我对PHP不太熟悉