PHP на основе базы данных - раскрывающееся меню CSS

Я создал php-файл для получения привилегий каждого пользователя по его данным в БД. И код отображает его в виде выпадающего списка. Код ниже используется для получения и отображения.

//session_start();
include('db.php');
//include('../CheckSession.php');

$userid=$_SESSION['UserID'];
echo'<ul class="dropdown"><li><a href="index.php">Home</a></li>';

$sql = "select privilege.privilege_catagory from privilege inner join user_privilege on privilege.privilege_id=user_privilege.privilege_id where user_privilege.UserID=$userid group by privilege.privilege_catagory ";
$result= mysql_query($sql) or die(mysql_error());
$num_row=mysql_num_rows($result);
if($num_row!=0)
{
    while($rb=mysql_fetch_array($result))
    {
        $p_cat=$rb['privilege_catagory'];
        echo'<li><a href="#">'.$p_cat.'</a>';

        $sql2 = "SELECT privilege.url_Location,privilege.option_Name FROM privilege inner join user_privilege on privilege.privilege_id=user_privilege.privilege_id WHERE privilege.privilege_catagory='$p_cat' AND user_privilege.UserID=$userid" ;
                //$sql2 = "SELECT privilege.url_Location,privilege.option_Name FROM privilege inner join user_privilege on privilege.privilege_id=user_privilege.privilege_id  WHERE user_privilege.UserID =$userid";
        $result2= mysql_query($sql2) or die(mysql_error());
        $num_row2=mysql_num_rows($result2);
        if($num_row2!=0)
        {
            echo'<ul class="sub_menu">';
            while($rb2=mysql_fetch_array($result2))
            {
                echo'<li><a href="'.$rb2['url_Location'].'">'.$rb2['option_Name'].'</a></li>';
            }
                echo'</ul>';
         }
         echo'</li> ';
    }

    mysql_free_result($result);      
} 
else
{

}
echo'</ul>';
?>

Таблица БД выглядит следующим образом: privilege_id, privilege_name, privilege_catagory, url_Location, option_Name (это то, что должно отображаться в выпадающем меню)

Я включаю эту страницу php в index.page. Там все отлично работает. Но когда страница перенаправляет на любую другую страницу, URL выпадающего списка объединяется с текущим URL, например, когда я перенаправляю на localhost/demo/index.php на localhost/demo/Admission/NewAdmission.php, это работает

но когда я нажимаю на home('index.php' - это значение URL), оттуда он попадает в: localhost/demo/Admission/index.php!!

Смешной. Но у меня серьезные проблемы. Все внимание тепло приветствуется. Заранее спасибо.

3 ответа

Попробуйте указать базовый URL вашего сайта в href.

echo'<li><a href="'.$base_url.$rb2['url_Location'].'">'.$rb2['option_Name'].'</a></li>';

Причина в том, что вы используете относительные ссылки в атрибуте href. Если вы используете

<a href="new.php">Links</a>
и вы находитесь на странице с URL-адресом "http://sample/demo/index.php", а затем нажмите "Ссылки", ваш новый URL будет "http://sample.com/demo/index.phpnew"..php "!!! которого вы можете избежать, используя абсолютный URL-адрес, как <a href="http://sample.com/demo/new.php">Links</a >. Вам следует использовать константу или переменную в PHP, которая может хранить базовый URL-адрес вашего веб-сайта, а затем отображать его во всех ссылках, чтобы при смене домена вашего веб-сайта вам не приходилось переходить по каждой ссылке и изменять доменное имя.

Спасибо всем за вашу поддержку. Извините, ребята, я заставил код работать. На самом деле это была логическая ошибка, если поместить php-файл навигатора для php в какую-то другую папку. Я поместил "Useraccount.php" {выпадающий код} в основную папку и сделал "../" для всех ссылок.

Еще раз спасибо за все.

Другие вопросы по тегам