Avatar billede kren1000 Nybegynder
24. april 2007 - 16:51 Der er 8 kommentarer og
1 løsning

Ændring af variabel fra array

Hej Eksperter

Jeg har for et par dage siden fået dette script i et spørgsmål fra brugeren showsource, hvilket jeg er ret glad for.

Det skaber end menu, hvor jeg kan beholde linket i f.eks. "understreget", når siderne skifter.
-----------------------------------------------------------
<?php
$links = array("links", "kontakt", "info");

for($i =0; $i < count($links); $i++) {
    if(basename($_SERVER["PHP_SELF"], ".php") == $links[$i]) {
    echo $links[$i];
    }else{
    echo"<a href='". $links[$i] .".php'>". $links[$i] ."</a>";
    }
echo"<br />\r\n";
}

}
?>
-----------------------------------------------------------

Mit problem er dog at jeg har nogle links, som f.eks. Præsentation. Dette er et problem, når den tager ordene i arrayet og sætter .php efter. Dvs. så linket kommer til at hedde Præsentation.php. Hvordan kan jeg ændre dette i arrayet istedet for presentation.php?

Jeg har forsøgt mig med at ændre, men har ikke kunnet hitte ud af det.
Avatar billede henninghabor Nybegynder
24. april 2007 - 17:31 #1
indsæt denne inden if-sætningen:

if($link[$i] == "Præsentation")
{
  $link[$i] = "presentation";
}
Avatar billede henninghabor Nybegynder
24. april 2007 - 17:35 #2
Hov, du kalder dem $links[$i].

I min løsning bliver a title også til presentation. Det kan du ændre ved at indsætte lidt mere. Her kommer hele koden.

<?php
$links = array("links", "kontakt", "info");

for($i =0; $i < count($links); $i++) {
    $title = $links[$i];

    if($links[$i] == "Præsentation")
    {
        $links[$i] = "presentation";

        $title = "Præsentation";
    }
    if(basename($_SERVER["PHP_SELF"], ".php") == $links[$i]) {
    echo $links[$i];
    }else{
    echo"<a href='". $links[$i] .".php'>". $links[$i] ."</a>";
    }
echo"<br />\r\n";
}

}
?>
Avatar billede henninghabor Nybegynder
24. april 2007 - 17:36 #3
echo"<a href='". $links[$i] .".php'>". $links[$i] ."</a>";

ændres til

    echo"<a href='". $links[$i] .".php'>". $title ."</a>";
Avatar billede kren1000 Nybegynder
24. april 2007 - 17:56 #4
Jeg har forsøgt at sætte din første sætning ind, bare for at teste, men kan ikke få det til at funke: Her er hele min menu funktion, hvor jeg prøver med Præsentation, den skriver det fint i menuen, men den linker til Præsentation.php:
--------------------------------------------------------------
function hovedmenu() {
echo "<table width=\"100%\" border='0'>";
echo "<tr>";

$links = array("index", "Præsentation", "malerier", "tegninger", "aktuelt", "links", "kontakt");

for($i =0; $i < count($links); $i++) {
           
    echo "<td align='left' class='hovedmenu'><div style=\"margin-left:25px;\">";
   
    if($link[$i] == "Præsentation")
{
  $link[$i] = "presentation";
}
   
    if(basename($_SERVER["PHP_SELF"], ".php") == $links[$i]) {
    echo "<span class='valgtlink'>";
    echo $links[$i];
    echo "</span>";

    }else{
    echo"<a href='". $links[$i] .".php'>". $links[$i] ."</a>";
    }
echo"<br />\r\n";
}
echo "</div>";
echo "</td></tr>";
echo "</table>";
}
Avatar billede henninghabor Nybegynder
24. april 2007 - 18:11 #5
function hovedmenu() {
echo "<table width=\"100%\" border='0'>";
echo "<tr>";

$links = array("index", "Præsentation", "malerier", "tegninger", "aktuelt", "links", "kontakt");

for($i =0; $i < count($links); $i++) {
  $title = $links[$i];
    echo "<td align='left' class='hovedmenu'><div style=\"margin-left:25px;\">";
   
    if($links[$i] == "Præsentation")
{
  $links[$i] = "presentation";
  $title = "Præsentation";
}
   
    if(basename($_SERVER["PHP_SELF"], ".php") == $links[$i]) {
    echo "<span class='valgtlink'>";
    echo $links[$i];
    echo "</span>";

    }else{
    echo"<a href='". $links[$i] .".php'>". $title ."</a>";
    }
echo"<br />\r\n";
}
echo "</div>";
echo "</td></tr>";
echo "</table>";
}
Avatar billede kren1000 Nybegynder
24. april 2007 - 18:13 #6
+ s i link, også uden held:)
Avatar billede kren1000 Nybegynder
24. april 2007 - 18:16 #7
Så nu nærmer det sig, fedt du gider hjælpe:)

Nu viser den rigtig Præsentation og linker til presentation.php, men når den så er på siden, hedder linket: prensentation.
Avatar billede kren1000 Nybegynder
24. april 2007 - 19:41 #8
Ah ok, fandt fejlen selv, istedet for echo $links[$i];, skal det være:

if(basename($_SERVER["PHP_SELF"], ".php") == $links[$i]) {
    echo "<span class='valgtlink'>";
    echo $title;
    echo "</span>";

Så nu funker det perfekt, mange tak for hjælpen! Smid et svar så for du point.
Avatar billede henninghabor Nybegynder
25. april 2007 - 08:23 #9
Tak for points. :)
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