Avatar billede fiskerendk Nybegynder
18. maj 2006 - 12:02 Der er 15 kommentarer og
1 løsning

If,Else inside Function

Hej,

Jeg har lavet følgende script, som skal ændre pilens farve alt efter hvilken menu man er i. Fint nok dette virker også fint nok UDEN for en function. Men da jeg skal include functionen på min side vil den ikke rigtig. Er det fordi If, Else ikke fungere inden for en function, evt hvad skal gøres for at dette fungere?

<code>
function menu() {

$normal = '<img src="img/arrow.gif" border="0" alt="">';
$active = '<img src="img/arrow_red.gif" border="0" alt="">';

if ($item=="10") { $arrow10 = $active; } else { $arrow10 = $normal; }
if ($item=="20") { $arrow20 = $active; } else { $arrow20 = $normal; }
if ($item=="30") { $arrow30 = $active; } else { $arrow30 = $normal; }
if ($item=="40") { $arrow40 = $active; } else { $arrow40 = $normal; }
if ($item=="50") { $arrow50 = $active; } else { $arrow50 = $normal; }

echo '<div class="menuText">';
echo '&nbsp;&nbsp;<a href="?item=10">' . $arrow10 . 'Hjem</a> ';
echo '&nbsp;&nbsp;<a href="?item=20">' . $arrow20 . 'Bilen</a> ';
echo '&nbsp;&nbsp;<a href="?item=30">' . $arrow30 . 'Projekter</a> ';
echo '&nbsp;&nbsp;<a href="?item=40">' . $arrow40 . 'Dokumentation</a> ';
echo '&nbsp;&nbsp;<a href="?item=50">' . $arrow50 . 'Services</a> ';
echo '</div>';
}
</code>

Med Venlig Hilsen
Thomas Nissen
Avatar billede j_jorgensen Nybegynder
18. maj 2006 - 12:06 #1
Nej det er ikke derfor at det ikke virker. Problemet er at når du er på en side til at starte med, så giver du ikke $item en værdi. Prøv at gå ind på bla.php?item=30, så vil det virke fremover... du mangler en default værdi.
Avatar billede fiskerendk Nybegynder
18. maj 2006 - 12:16 #2
Altså min hoved siden er selvfølgelig index.php det er her jeg inkludere filen menu.php som har den function.

Kan du ik lige presisere lidt mere hvad det er jeg skal gøre og på hvilken side?
Avatar billede morhan Novice
18. maj 2006 - 12:20 #3
http://us2.php.net/variables.scope

håber det er forklaring nok :)
Avatar billede j_jorgensen Nybegynder
18. maj 2006 - 12:23 #4
På din index side skal du starte med at give $item en værdi (muligvis værdien for "hjem" - hvis du med "hjem" mener index.php :)
Avatar billede fiskerendk Nybegynder
18. maj 2006 - 12:30 #5
Hmm, Nu har jeg på index.php siden lavet en $item = 10; (standard værdi'en)
og det samme i min menu altså der hvor functionen er. Og nu gir den kun en rød pil i den første? ligemeget om jeg siger item 10,20,30 osv...
Avatar billede sw_red_6 Nybegynder
18. maj 2006 - 12:32 #6
Kan det ikke tænkes at det er fordi du ikke sender $item med i funktionskaldet så funktionen ikke er klar over hvad den skal bruge?
Avatar billede fiskerendk Nybegynder
18. maj 2006 - 12:32 #7
Har også prøve kun på index.php siden at lave en. Men det hjælper ik meget :D
Avatar billede fiskerendk Nybegynder
18. maj 2006 - 12:33 #8
sw_red_6 > fortæl nermere? :D
Avatar billede morhan Novice
18. maj 2006 - 12:33 #9
den mest simple måde, i din funktion gør du $item global inden du tager den i brug:

global $item;
Avatar billede sw_red_6 Nybegynder
18. maj 2006 - 12:33 #10
har du læst det link morhan skrev?
Avatar billede sw_red_6 Nybegynder
18. maj 2006 - 12:39 #11
det kunne muligvis også gøres ved at lave en $item = $_GET['item'] øverst i funktionen når det nu er overførsel vha URL.
Ellers kan du lave funktionen med menu($item) { blahdiblah menu-halløj } og selve kaldet menu($menu_item);
Eller du kan gøre som morhan foreslår
Avatar billede fiskerendk Nybegynder
18. maj 2006 - 13:33 #12
Ok nu har jeg brugt global $item; inde i function.. og det virker også ganske godt. Undtagen item=10, den vil ikke virke og jeg har tjekket 14 gange om der står det rigtige endda kopieret fra de andre og smidt over. Men den vil ik virke..

Jeg har dertil også prøvet at lave en $item = 10; i index, og i menu både inden og uden for function og endda samtidig osv.
Avatar billede sw_red_6 Nybegynder
19. maj 2006 - 11:26 #13
har du prøvet at udskrive $item?
Avatar billede fiskerendk Nybegynder
19. maj 2006 - 14:12 #14
Har fået det til at spille nu.. Smid lige et svar alle sammen... så deler i points.
Avatar billede sw_red_6 Nybegynder
19. maj 2006 - 15:39 #15
Ah, det må være morhan's point, det var trods alt den løsning du brugte
Avatar billede fiskerendk Nybegynder
14. juni 2006 - 21:33 #16
Nå ingen respons j_jorgensen du for dem :D
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