2012-11-17 28 views
0

一種解決方案能夠自動建立導航的網站是通過掃描一個文件夾中的文件是這樣的:傳遞一個值從一個頁面到另一個查詢字符串和沒有JavaScript?

foreach(glob('pages/*.pg.php') as $_SITE_NAV_filePath): 
    $_SITE_NAV_filePath = explode('.pg',pathinfo($_SITE_NAV_filePath,PATHINFO_FILENAME)); 
    $_SITE_NAV_fileName = $_SITE_NAV_filePath[0]; 

    $_SITE_NAV_qv = preg_replace('/([A-Z])/','-$1',$_SITE_NAV_fileName); $_SITE_NAV_qv = trim($_SITE_NAV_qv,'-'); 
    $_SITE_NAV_name = preg_replace('/([A-Z])/',' $1',$_SITE_NAV_fileName); 
    ?> 
    <li><a href="?page=<?=$_SITE_NAV_qv?>" class="<?=$_SITE_NAV_qv == $_SITE_PAGE['qv']?'active':''?>"><?=$_SITE_NAV_name?></a></li> 
    <?php 
endforeach; 

該代碼將變爲「AnAwesomePage.pg.php」進入菜單項是這樣的:
<li><a href="?page=An-Awesome-Page">An Awesome Page</a></li>

這可能是不好的做法(?)。不管怎麼說,我不使用這種方法往往因爲大多數的時間點有一個數據庫,並與來更好的解決方案...

但我的問題是這樣的:
是有辦法的前綴文件名以整數後跟和下劃線(3_AnAwesomePage.pg.php),用於排序順序的目的,並以某種方式將它傳遞到所述目的地頁面的查詢字符串的外部,並且沒有任何異步JavaScript的?

我可以爆炸的文件名再次對"_"獲取排序順序,並存儲在某個地方,不知何故?

這是HANDELING頁面查詢請求的代碼:

$_SITE_PAGE['qv'] = $_GET['page']; 

if (empty($_SITE_PAGE['qv'])){ $_SITE_PAGE['qv'] = explode('-','Home'); } 
else { $_SITE_PAGE['qv'] = explode('-',$_GET['page']); } 

$_SITE_PAGE['file'] = 'pages/'.implode($_SITE_PAGE['qv']).'.pg.php'; 

此代碼變爲「安真棒頁」回「AnAwesomePage.pg.php」因此有可能用PHP把它列入。

但隨着前綴,它不是那麼容易。

問題是;現在無法知道前面的數字,因爲它已從查詢字符串中刪除。所以我需要在「背景」中以某種方式發送它。我想出了

一個非常糟糕的解決辦法是導航鏈接轉換成一個表單按鈕,只是_POST與表單一起前綴整數。在拳頭,它聽起來像一個很好的解決方案,但後來我意識到,一旦用戶刷新他們的頁面,它看起來不太好。畢竟,這不是形式是要麼...

什麼好的解決辦法了嗎?
或者其他一些更好的方式來處理這個問題?

回答

0

有繼續保存,可以使用cookie或PHP會話變量,這個數字兩種方式。 但在這種情況下,如果用戶首先在瀏覽器或新瀏覽器中輸入網址,則應將其設爲默認編號。 和你一樣有:

1_first-page.php 
2_first-page.php 
3_first-page.php 

如果用戶輸入喜歡的網址:domain.com/?page=first-page,你要帶他去1_first-page.php文件到你想成爲默認的任意數量的。

+0

感謝您的建議Aatif。你的回答讓我意識到我需要以某種方式在被查詢的頁面名稱和前綴整數之間建立一個鏈接。就像在數據庫中一樣。將用戶重定向到默認頁面根本不是一個選項... – ThomasK

相關問題