Php 确定当前页面的菜单项并设置其样式
我无法在菜单中选择当前项目,代码如下:Php 确定当前页面的菜单项并设置其样式,php,Php,我无法在菜单中选择当前项目,代码如下: $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="curr
$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>';
}
}
为什么不起作用?试着从| |变为&试着:
# 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
修复了我代码中的一个错误,添加了更多调试消息。上面的代码来自Lucanos:url是你好,我无法获取此代码,此代码的作用是什么。。?如果$u获得['page']!=$行[url]。||isset$\u GET['page']是否正常工作….?抱歉,未正常工作,在主页上选择所有链接,在任何其他页面上选择除主页外的所有页面我已添加调试消息-任何以echo'debug:'开头的行。。。帮助您了解不同阶段的不同变量。使用该选项确定此代码未按预期运行的原因。以下是输出代码:DEBUG:!isset$\u GET[页面]=1数据库:!isset$\u-GET[post]=DEBUG:$row['url']=blogDEBUG:Match$\u-GET[page]=DEBUG:Match$\u-GET[post]=注意:未定义变量:functions.php第441行DEBUG:$row['url']=contactDEBUG:Match$\u-GET[page]=DEBUG:Match$\u-GET[post]=注意:未定义变量:functions.php第441OK行的attrs,修复了第441行functions.php中Notice:Undefined变量:attrs的位错误。还添加了另外两条调试消息。请再次尝试上面的代码,并让我知道它返回的消息,就像您刚才所做的那样