2011-05-12 82 views
0

我無法讓我的菜單中選擇當前項目,這裏是代碼:識別和風格菜單項的當前頁

$sql = "SELECT * FROM kurchi_pages ORDER BY id LIMIT 1,5"; 
    $res = mysql_query($sql); 

    $site_url = "http://swenflea/swenflea.com/"; 

    if(!isset($_GET['page']) || !isset($_GET['post'])) { 
     echo '<li id="current"><a href="' . $site_url . '">Home</a></li>'; 
    } else { 
     echo '<li><a href="' . $site_url . '">Home</a></li>'; 
    } 


    if (isset($_GET['page']) || isset($_GET['post'])) { 
     while($row = mysql_fetch_assoc($res)) { 
     if ($_GET['page'] != "" . $row["url"] . "" || isset($_GET['page'])) 
     { 
      $itemis = '<li><a href="' . $site_url . '' . $row['url'] . '/">' . $row['nav_name'] . '</a></li>'; 
     } else { 
      $itemis = '<li id="current"><a href="' . $site_url . '' . $row['url'] . '/">' . $row['nav_name'] . '</a></li>'; 
     } 
     echo $itemis; 
     } 
    } else { 
     while($row = mysql_fetch_assoc($res)) { 
      echo '<li><a href="' . $site_url . '' . $row['url'] . '/">' . $row['nav_name'] . '</a></li>'; 
    } 
    } 

爲什麼不這項工作?

+0

你好,我不能得到這個代碼,這個代碼做什麼..? ** if($ _GET ['page']!=「」。$ row [「url」]。「」|| isset($ _ GET ['page']))**是否正常工作..? – Chandresh 2011-05-12 07:05:04

回答

0

試圖改變從||&&

0

嘗試:

# Page Configuration Values 
$sql = "SELECT * FROM kurchi_pages ORDER BY id LIMIT 1,5"; 
$site_url = "http://swenflea/swenflea.com/"; 

# If Neither PAGE or POST are set, mark the HOME link as CURRENT 
echo '<li'.(!isset($_GET['page']) && !isset($_GET['post']) ? ' id="current"' : '').'><a href="' . $site_url . '">Home</a></li>'; 
echo 'DEBUG: !isset($_GET[\'page\']) = '.!isset($_GET['page']); 
echo 'DEBUG: !isset($_GET[\'post\']) = '.!isset($_GET['post']); 

# Perform the SQL Query 
$res = mysql_query($sql); 

# Check the SQL Result 
if(!$res) 
    die('ERROR: Unable to Retrieve Pages from Database'); 
if(mysql_num_rows($res)==0) 
    die('ERROR: No Pages Retrieved from Database'); 

# Loop through the Rows 
    echo 'DEBUG: $_GET[\'page\'] = '.(isset($_GET['page']) ? $_GET['page'] : '--'); 
    echo 'DEBUG: $_GET[\'post\'] = '.(isset($_GET['post']) ? $_GET['post'] : '--'); 
while($row = mysql_fetch_assoc($res)){ 
    echo 'DEBUG: $row[\'url\'] = '.$row['url']; 
    echo 'DEBUG: Match $_GET[\'page\'] = '.(isset($_GET['page']) && $_GET['page']==$row['url']); 
    echo 'DEBUG: Match $_GET[\'post\'] = '.(isset($_GET['post']) && $_GET['post']==$row['url']); 
    $attrs = ''; 
    if((isset($_GET['page']) && $_GET['page']==$row['url']) 
     || (isset($_GET['post']) && $_GET['post']==$row['url'])){ 
    # Page OR Post Requested - Matches Row 
    $attrs = ' id="current"'; 
    } 
    echo '<li'.$attrs.'><a href="'.$site_url.$row['url'].'">'.$row['nav_name'].'</a></li>'; 
} 

更新1組

添加調試信息的代碼,以確定爲什麼它無法按預期工作。

更新2

定格在我的代碼錯誤一個,進一步增加調試消息。

+0

抱歉沒有工作,在主頁上選擇所有鏈接,在任何其他頁面上選擇除家外的所有頁面 – swenflea 2011-05-12 08:40:15

+0

我添加了調試消息 - 任何以'echo'開頭的行DEBUG:...'以幫助您瞭解什麼不同變量有不同的階段。用它來確定爲什麼這段代碼不像預期的那樣工作。 – 2011-05-12 10:32:10

+0

這裏是輸出代碼:DEBUG:!isset($ _GET [「page」])= 1DEBUG:!isset($ _GET [「post」])= DEBUG:$ row ['url'] = blogDEBUG:Match $ _GET DEBUG:$ row ['url'] = contactDEBUG:Match $ _GET [「page」] = DEBUG:Match $ _GET [「post」] = 注意:未定義變量:函數中的attrs 441行 「] = DEBUG:Match $ _GET [」post「] = 注意:未定義的變量:441行的函數.php中的attrs – swenflea 2011-05-12 20:24:56