Avatar billede bremer Nybegynder
09. november 2008 - 16:44 Der er 6 kommentarer

Ændring af menu style!

Hej Venner,

Kort sagt vil jeg lige starte med at sige, jeg har ikke super programmør, men jeg har nu fået lavet en menu til min site (Cool!)

Eksempel:
Forside | underside | underside | underside | underside

Selve menuen er lavet på denne måde:
•    En tabel med et billede
•    En tabel med navn
•    En tabel med et billede


Min kode ser sådan her ud:

<table border="0" cellspacing="0" cellpadding="0">
  <tr>
<?php
$result = mysql_query("SELECT * FROM ms_menu ORDER BY menu_placering", $connection);
    if (!$result) {
        die("Database query failed: " . mysql_error());
}

while ($row = mysql_fetch_array($result)) { 
print "<td><img src='http://www.moviesite.dk/new/images/default/menu/menu_venstre_aktiv.jpg'></td>";
print "<td class='baggrund_topmenu_content_aktiv'><a href='http://www.moviesite.dk/new/".$row[menu_link]."'><span class='menu_text_style_aktiv'>".$row[menu_navn]."</span></td>";
print "<td><img src='http://www.moviesite.dk/new/images/default/menu/menu_hojre_aktiv.jpg'></td>";
print "<td class='menu_space'></td>";
   
    }
    ?>
    </tr>
</table>


Men jeg nu sidder jeg og tænker over, at jeg gerne vil være smart! dvs. at jeg gerne vil lave min kode om så min style selv finder ud af, hvad for et menupunkt man er på.

Dvs. hvis man er på ”forsiden” – er menupunktet ”aktiv” og alle de andre menupunkter er ikke.


Min Style for at ”aktiv” menupunkt:
(Images) menu_venstre_aktiv.jpg
(CSS) menu_text_style_aktiv
(Images) menu_hojre_aktiv.jpg


Min Style for ”ikke aktiv” menupunkt:
(Images) menu_venstre.jpg
(CSS) menu_text_style
(Images) menu_hojre.jpg

Hvordan og hvad skal jeg ændre min kode før dette kan komme til, at virke??? :)

Håber virkelig i kan hjælp mig med at komme videre her!
På forhånd tak!
Avatar billede Slettet bruger
10. november 2008 - 02:11 #1
Det kommer an på hvilken måde du tjekker hvilken side du er på.
Styrer du dine sider via HTTP GET, altså henter data ned fra URL adressen, eller linker du direkte til den enkelte side?

Et eksmpel hvis du bruger HTTP GET, til styring af dine sider:
<?php
if($_GET["page"] == "" || !isset($_GET["page"])) // Forsiden
{
  $get_LeftImg = "http://www.moviesite.dk/new/images/default/menu/menu_venstre_aktiv.jpg";
  $get_css = "menu_text_style_aktiv";
  $get_RightImg = "http://www.moviesite.dk/new/images/default/menu/menu_hojre_aktuv.jpg";
} else // Alle andre sider end forsiden
{
  $get_LeftImg = "http://www.moviesite.dk/new/images/default/menu/menu_venstre.jpg";
  $get_css = "menu_text_style";
  $getRightImg = "http://www.moviesite.dk/new/images/default/menu/menu_hojre.jpg";
}
?>

<table border="0" cellspacing="0" cellpadding="0">
  <tr>
<?php
$result = mysql_query("SELECT * FROM ms_menu ORDER BY menu_placering", $connection);
    if (!$result) {
        die("Database query failed: " . mysql_error());
}

while ($row = mysql_fetch_array($result)) {
print "<td><img src='http://www.moviesite.dk/new/images/default/menu/".$get_LeftImg."'></td>";
print "<td class='baggrund_topmenu_content_aktiv'><a href='http://www.moviesite.dk/new/".$row[menu_link]."'><span class='".$get_css."'>".$row[menu_navn]."</span></td>";
print "<td><img src='http://www.moviesite.dk/new/images/default/menu/".$get_RightImg."'></td>";
print "<td class='menu_space'></td>";
 
    }
    ?>
    </tr>
</table>
Avatar billede bremer Nybegynder
10. november 2008 - 07:38 #2
lige skriver jeg dem direkte ind fra DB'en (fx. index.php eller underside.php osv...)

Jeg kan ikke helt få det til, at virke!? - har det noget at sige, at jeg henter dem direkte fra DB'en.

PS. jeg kunne lige spotte lige nogen taste fejl i koden:

<?php
if($_GET["page"] == "" || !isset($_GET["page"])) // Forsiden
{
  $get_LeftImg = "http://www.moviesite.dk/new/images/default/menu/menu_venstre_aktiv.jpg";
  $get_css = "menu_text_style_aktiv";
  $get_RightImg = "http://www.moviesite.dk/new/images/default/menu/menu_hojre_aktiv.jpg";
} else // Alle andre sider end forsiden
{
  $get_LeftImg = "http://www.moviesite.dk/new/images/default/menu/menu_venstre.jpg";
  $get_css = "menu_text_style";
  $get_RightImg = "http://www.moviesite.dk/new/images/default/menu/menu_hojre.jpg";
}
?>

<table border="0" cellspacing="0" cellpadding="0">
  <tr>
<?php
$result = mysql_query("SELECT * FROM ms_menu ORDER BY menu_placering", $connection);
    if (!$result) {
        die("Database query failed: " . mysql_error());
}

while ($row = mysql_fetch_array($result)) {
print "<td><img src='".$get_LeftImg."'></td>";
print "<td class='baggrund_topmenu_content_aktiv'><a href='http://www.moviesite.dk/new/".$row[menu_link]."'><span class='".$get_css."'>".$row[menu_navn]."</span></td>";
print "<td><img src='".$get_RightImg."'></td>";
print "<td class='menu_space'></td>";

    }
    ?>
    </tr>
</table>
Avatar billede Slettet bruger
10. november 2008 - 14:16 #3
Koden virker ikke hos dig pga. du linker direkte til undersider og ikke til en fil der bagefter inkluderer den valgte side.
For at tjekke hvilken fil du er i lige pt, er der et par forskellige funktioner, en af dem er "_SERVER[SCRIPT_FILENAME]", så istedet for at bruge HTTP GET til at styrer dine sider, skal du bruge _SERVER["SCRIPT_FILENAME"].
Et eksempel på det kan se sådan her ud:

<?php
$current_file_path = $_SERVER["SCRIPT_FILENAME"]; // Henter stien til den fil du er i
lige pt.
$current_file_path = str_replace("\\","/",$current_file_path); // Ændre alle backslashs til forward slashs
$last_pos = strrpos($current_file_path,"/"); // Finder positionen på den sidste slash
$get_filename = substr($current_file_path, $last_pos+1); // Henter fil navnet ud fra stien

if($get_filename == "index.php" || $get_filename == "")) // Forsiden
{
  $get_LeftImg = "http://www.moviesite.dk/new/images/default/menu/menu_venstre_aktiv.jpg";
  $get_css = "menu_text_style_aktiv";
  $get_RightImg = "http://www.moviesite.dk/new/images/default/menu/menu_hojre_aktuv.jpg";
} else // Alle andre sider end forsiden
{
  $get_LeftImg = "http://www.moviesite.dk/new/images/default/menu/menu_venstre.jpg";
  $get_css = "menu_text_style";
  $getRightImg = "http://www.moviesite.dk/new/images/default/menu/menu_hojre.jpg";
}
?>

<table border="0" cellspacing="0" cellpadding="0">
  <tr>
<?php
$result = mysql_query("SELECT * FROM ms_menu ORDER BY menu_placering", $connection);
    if (!$result) {
        die("Database query failed: " . mysql_error());
}

while ($row = mysql_fetch_array($result)) {
print "<td><img src='http://www.moviesite.dk/new/images/default/menu/".$get_LeftImg."'></td>";
print "<td class='baggrund_topmenu_content_aktiv'><a href='http://www.moviesite.dk/new/".$row[menu_link]."'><span class='".$get_css."'>".$row[menu_navn]."</span></td>";
print "<td><img src='http://www.moviesite.dk/new/images/default/menu/".$get_RightImg."'></td>";
print "<td class='menu_space'></td>";

    }
    ?>
    </tr>
</table>


Jeg kan ikke garanterer det virker må jeg indrømme, men idéen der i burde være rigtig. Håber det kan bruges :-)

//RoxKi
Avatar billede bremer Nybegynder
11. november 2008 - 11:51 #4
øv øv.... det virker ikke :(
Avatar billede bremer Nybegynder
17. december 2009 - 19:48 #5
Bare skriv et "svar" - de få point... -
Avatar billede bremer Nybegynder
29. april 2012 - 10:50 #6
send et svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester