我是相當新的使用PHP,在此導航之前,我的PHP使用範圍很簡單。PHP導航,有沒有更好的方法來做到這一點?
我已經寫生成鏈接動態地使用從陣列拉出內部variables.php
總的目標變量的導航是加/減鏈接,subnavs,子subnavs一個navigation.php文件,分次subnavs只能通過編輯variables.php
我使用生成HTML結構笨重的感覺給我的方法,它工作得很好,但我覺得有這樣做的一個簡單的方法。 ..
另外,我需要額外的樣式爲任何具有subnav目前(表示subnav存在的箭頭)的LI。我想動態生成它。
那說我的問題是:
- 是否有這樣做的一個簡單的方法?
- 有沒有一種方法根據是否存在子導航來動態生成我的動態?
每一頁都有下面的代碼,它的變化取決於在頁面上。
<?php $title = 'Home'; ?>
我variables.php:
<!-- NAVIGATION ARRAY -->
<?php
$nav_mini = array(
'Home' => 'index.php',
'About' => 'about.php',
'Services' => 'services.php'
);
?>
<?php
$nav_main = array(
'Home' => 'index.php',
'About' => 'about.php',
'Services' => 'services.php',
'Portfolio' => 'contact.php',
'Clients' => 'about.php',
'Gallery' => 'services.php',
'News' => 'services.php',
'Contact Us' => 'contact.php'
);
?>
<?php // SUB NAV ARRAYS
$nav_sub_about = array(
'Our Team' => 'about.php'
);
$nav_sub_michael = array(
'Michael' => 'index.php',
'Aaron' => 'about.php',
'Kenny' => 'about.php',
'David' => 'about.php'
);
$nav_sub_services = array(
'Get Found' => 'about.php'
);
?>
導航PHP文件主nav.php
<?php
foreach ($nav_main as $key => $value) {
echo "<li><a ";
echo "class='"; // STARTS CLASS=
if ($title == $key) {
echo "active "; }// ADDS ACTIVE CLASS TO LINK OF CURRENT PAGE
echo "' "; // END QUOTES FOR CLASS="
echo "href='$value'>$key";
if ($key == "About") { // STARTS IF SEQUENCE FOR SUBNAV ARROWS
echo "<span class='arrow'> +</span>";}
elseif ($key == "Services") {
echo "<span class='arrow'> +</span>";}
echo "</a>\n"; // END ANCHOR TAG FOR MAIN NAV LINKS
//----------------------------------------------------------------------------------------------------------//
// PLEASE START SUB-NAVS HERE ------------------------------------------------------------------------------//
// AT THIS POINT A NEW <LI> IS GENERATED FROM THE FIRST FOREACH, IF THE BELOW IS TRUE IT POPULATES A SUBNAV //
if ($key == "About"){ // START SUBNAV FOR ABOUT
echo "<ul class='main-sub-nav'>"; // THIS LINE WAS ADDED TO START THE <UL> FOR THE SUBNAV, IT ENDS ON LINE 14
foreach ($nav_sub_about as $key => $value) {
echo "<li><a href='$value'>$key";
if ($key == "Our Team") { // STARTS IF SEQUENCE FOR SUBNAV ARROWS
echo "<span class='arrow'> +</span>";}
echo "</a>\n"; // ENDS ANCHOR TAG FROM SUBNAV LI
// SUB-SUB-NAV STARTS HERE
if ($key == 'Our Team') {
echo "<ul class='main-sub-sub-nav'>"; // THIS STARTS THE UL FOR SUB-SUB-NAV
foreach ($nav_sub_michael as $key => $value) {
echo "<li><a href='$value'>$key</a></li>\n";
}
echo "</ul>"; // THIS ENDS THE SUB-SUB-NAV UL STARTED ON LINE 34
echo "</li>";}// THIS IS THE END IF <LI> FROM THE SECOND FOREACH ON LINE 35
}
echo "</ul>"; // THIS WAS ADDED TO END THE SUBNAV <UL> STARTED ON LINE 11
echo "</li>";} // THIS IS THE END OF THE <LI> FROM THE FIRST FOREACH ECHO FROM LINE 8
//----------------------------------------------------------------------------------------------------------//
// AT THIS POINT A NEW <LI> IS GENERATED FROM THE FIRST FOREACH, IF THE BELOW IS TRUE IT POPULATES A SUBNAV //
if ($key == "Services"){
echo "<ul class='main-sub-nav'>"; // THIS LINE WAS ADDED TO START THE <UL> FOR THE SUBNAV, IT ENDS ON LINE 14
foreach ($nav_sub_services as $key => $value) {
echo "<li><a href='$value'>$key</a></li>\n";}
echo "</ul>"; // THIS WAS ADDED TO END THE SUBNAV <UL> STARTED ON LINE 11
echo "</li>";} // THIS IS THE END OF THE <LI> FROM THE FIRST FOREACH ECHO FROM LINE 8
} // THIS BRACKET ENDS THE ENTIRE SET OF PHP. ITS PAIR IS ON LINE 19
?>
總體目標是隻能通過編輯variables.php
加/減環節,subnavs,分subnavs,分次subnavs下面是這個導航結構工作的一個活生生的例子...... http://khill.mhostiuckproductions.com/siteLSSBoilerPlate/
一目瞭然,我想知道爲什麼你不只是使用多維數組或喙出php來編寫html。並回答你的問題 - 是的,是的。 – 2013-02-14 17:57:33
我嘗試了一個多維數組,但是我無法讓它工作,甚至在查看其他代碼之後。毫無疑問,由於我缺乏知識。 – Michael 2013-02-14 18:02:15