我不确定这个词的正确用语是什么,但我猜它的标签式网址或类似内容。无论如何,我在网上看到了很多,我想弄清楚效果如何。
一个很好的例子是在编辑你的Github个人资料时找到的标签 https://github.com/settings/profile
我们说我们的菜单上有一些标签:
<ul>
<li><a href="tab1">tab1</a></li>
<li><a href="tab2">tab2</a></li>
<li><a href="tab3">tab3</a></li>
</ul>
然后是内容div:
<div class="tab-content">
</div>
从我所看到的,当单击相应的选项卡链接时,将发送ajax请求以获取数据,然后将其插入到内容区域中。根据我的理解,这几乎是标准的。
但是,我不知道的部分是如何在新标签页或窗口中加载网址时,它会直接进入相应的标签。
例如,如果您访问: https://github.com/settings/notifications 您将直接进入通知标签页。
我正在尝试使用PHP实现类似的标签设置。 ajax部分并不是一个真正的问题,我可以很容易地解决这个问题。但是,让我们在新请求中加载相应标签的网址是我所坚持的。
我想这样做的方法只是检查URL然后加载选项卡,如下所示:
<div class="tab-content">
<?php
$URL = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
if ($URL = "http://example.com/tabs/tab1") {
echo "this is tab1 content";
}
else if ($URL = "http://example.com/tabs/tab2") {
echo "this is tab2 content";
}
// etc etc
?>
</div>
但如果我有20个标签,我真的不想在我的页面中添加20个if / else语句。我想到的另一种方法是将URL值放在一个数组中,并循环遍历它。有没有更好的方法用PHP设置这样的标签系统?
答案 0 :(得分:2)
您还可以将数据放入数据库,然后查询数据库。但是,如果不使用数据库,您还可以将标签内容放入文件中并执行以下操作:
<?php
$URL = $_SERVER['REQUEST_URI'];
$file = 'path_with_content' . DIRECTORY SEPARATOR . str_replace('/' , DIRECTORY_SEPARATOR, $URL).'.php';
if (file_exists($file)) {
echo file_get_contents($file);
}
因此,您可以简单地创建目录path_with_content/tabs
,并为每个选项卡创建此目录中的文件,其名称与最后一部分相同,作为网址的最后一部分(tab1,tab2等).php
扩展名(所以文件应该有名称tab1.php,tab2.php等)。
答案 1 :(得分:0)
你可以使用像这样的数组 $ navigation = Array(&#39; Home&#39; =&gt;&#39; index.php&#39;,&#39;关于&#39; =&gt;&#39; about.php&#39;);
然后,如果你创建一个全局变量,如:$ curPage
然后加载数组
每个循环然后检查$ curPage是否循环并使其成为另一种字体颜色
$ curPage将是&#39; Home&#39;或者&#39;关于&#39;然后用另一种字体或bg颜色显示它
这是我关于它的粘贴 - 它不是最好的但是它正在工作 - 忘记输出编号xD - http://pastebin.com/H1XcUiiE
提示:您可以创建一个navigation.php文件,而不是将其放在任何页面中 并将其一直包含在导航栏的区域中。