jeg er ny med php, men vil gerne lave så meget som muligt på mit nye websted med php, for at lære det. Mit spørgsmål lyder sådan: jeg bruger Switch til at styrer hvad der skal include() på min side, nu vil jeg så gerne have at hvis jeg trykker på den knap som kalder case "1" skifter baggrundsfarven på knappen, så man kan se hvor man er. det må være noget med at ligge det i en variabel, men jeg kan ikke rigtig for kaldt den.
Problemet er at jeg har lavet det sådan her: en index.php <?php include("topMenu_layout.php") ?> <?php $page = $_REQUEST["page"];
switch($page){ case news: include("news.php"); break; case about: include("about.php"); break; case faq: include("faq.php"); break; case register: include("register.php"); break; case forum: include("forum.php"); break; default: include("news.php"); break; }
?> og så har jeg en side med min menu: onclick="location.href='index.php?page=news';"> hvordan sætter jeg den farvekode ind i min "onclick" eller hvordan kalder jeg den et andet sted fra håber det er lidt forståeligt
du kan vel bare i din <a href="index.php?page=news"> skrive en <? if ($page == news) { echo " style=\"color: #ff0000;\""; } ?> så der kommer til at stå :
Det lyder rigtigt det vi er inde på jeg får bare en fejl, object expected <TD onclick="location.href='index.php?page=news';"<? if ($page == news) { echo " style='color: #ff0000;'"; } ?>>
<?php if ( isset( $_REQUEST["page"] ) ) { $page = $_REQUEST["page"]; } else { $page = 'ikke angivet'; } // nu er vi sikre på at $page har en værdi
switch($page){ case 'news': // husk anførselstegn om strenge include("news.php"); break; case 'about': include("about.php"); break; case 'faq': include("faq.php"); break; case 'register': include("register.php"); break; case 'forum': include("forum.php"); break; default: include("news.php"); break; }
der skal selvfølgelig lige et par gåseøjne rundt om værdien.. så <td onclick="location.href='index.php?page=news';"<? if ($page == "news") { echo " style='color: #ff00ff;'"; } ?>> burde virke, hvis du bare søger for at page er angivet ( evt med scriptet jakoba skrev ), før menuen kommer. Ellers bliver du nød til at tjekke på om den er sat i menuen også. altså evt en : <td onclick="location.href='index.php?page=news';"<? if ((isset($page)) && ($page == "news")) { echo " style='color: #ff00ff;'"; } ?>>
den melder ingen fejl og det hele virker på nær at den ikke skifter farve. min kode ser nu sådan nu: <td onclick="location.href='index.php?page=news';" <? if ($page == "news") { echo " style='background-color:#FF0000;'"; } ?>>
og min index.php: <?php include("topMenu_layout.php") ?> <?php if ( isset( $_REQUEST["page"] ) ) { $page = $_REQUEST["page"]; } else { $page = 'news.php'; }
switch($page){ case 'news': include("news.php"); break; case 'about': include("about.php"); break; case 'faq': include("faq.php"); break; case 'register': include("register.php"); break; case 'forum': include("forum.php"); break; default: include("news.php"); break; }
for det første.. hvis ikke den er sat, er det så ikke meningen at den skal være news og ikke news.php ??
derudover tror jeg ikke at fejlen skal findes i det du har skrevet herover.. hvis din switch virker og includere de rigtige sider, skulle der ikke være nogle problemer.. Lige bortset fra hvis menuen er sat på et forkert sted.. hvor i koden kommer den??
her er hele index.php koden, det er i topMenu_layout.php min knap ligger. det skal siges at min switch virker fint <HTML> <HEAD> <TITLE>The gamesite, which goes beyound</TITLE> <LINK rel="stylesheet" type="text/css" href="stylesheet.css"> </SCRIPT> </HEAD> <BODY> <TABLE border=0 align=center> <TR> <TD colspan=3> <?php include("titel_layout.php") ?> </TD> </TR> <TR> <TD rowspan=2 valign=top> <?php include("sideMenu_layout.php") ?> </TD>
<TD> <?php include("topMenu_layout.php") //det er i denne menu ?> </TD>
switch($page){ case 'news': include("news.php"); break; case 'about': include("about.php"); break; case 'faq': include("faq.php"); break; case 'register': include("register.php"); break; case 'forum': include("forum.php"); break; default: include("news.php"); break; }
men du har så det problem at du skifter side straks efter at du har ændret baggrundsfarven. Så er det jo ligemeget hvad du ændrer den til når den nye side kommer og skriver hvad den selv vil have.
vil det sige at jeg ikke kan lave en funktion som kan tjekke hvilken side der er included() og derefter sætte baggrundsfarven på min knap.Jeg er villig til at gå op i point :)
Mon ikke problemet er det sedvanlige med HVOR tingene sker.
php sker på serveren og genererer en .html side der bliver sendt til brugerens browser. på serveren og kun på serveren.
brugeren kan så klikke osv. men på det tidspunkt han klikker er php helt ude af billedet. på brugerens pc og kun på brugerens pc
så der skal sendes beskeder frem og tilbage. klikket kan sende besked og hvilken td der blev klikket på og beskeden kan så bruges af DEN NÆSTE php side der bliver genereret.
det er sikkert bare mig der har misforstået helt.. men så vil jeg meget gerne hører, hvad det er jeg ikke forstår så jeg også kan lærer lidt af det.. ;)
men er det ikke noget ligende http://www.bornstein.dk/342637.php du mente ?? ( har intet gjordt ud af at lave koden 'pæn'. skal kun bruges til at vise hvad jeg mente med menuen.. :)
det var sådan jeg havde tænkt mig men det virker åbenbart ikke når den menu(hvor jeg har mine knapper) bliver included fra en anden fil og det skal den.
burde det nu meget gerne gører.. jeg har på mange sider brugt forudbestemte variabler på includerede sider..
det ville nok hjælpe en hel del hvis du viste os det kode der IKKE virkede frem for det der virker.. for du må da have lavet en fejl et andet sted.. tror ikke på det er i den stump du har vist os ind til videre.. :(
stavefejlene er gratis.. det er sent, så der kommer en del af slagsen.. ;)
som jeg pointerede ovenfor tror jeg ikke at det har noget med at den bliver includeret at gøre.. men jeg ville aligevel være 100% sikker ( tror for meget på andre.. ;), så jeg testede det lige..
ja det er nemlig sådan det skal være jeg må prøve at gå min kode igennem noget mere, jeg ligger lige koden fra menu-filen som bliver included TABLE> <TR> <TD class=menuButtons onclick="location.href='index.php?page=news';" <? if ($page == "news") { echo " style='background-color:#FF0000;'"; } ?>>
du har vel med vilje kun fået sat dem på de to øverste ikk?? bare så du husker det kun er disse der skal virke.. derudover mangler du en < lige før tablen.. Men det er nok bare en kopieringsfejl ?
fejlen kunne også ligge i dit class=menuButtons.. Hvad står der i denne ? og har du evt også en der styrer td'erne ?? og i så fald, hvad står der i den ?
jeg har bare lagt det ind i 2 af dem for at teste det. i menuButtons er der indstillinger til font og borders, jeg har prøvet at slette dem, det hjalp ikke rigtigt, fordi jeg troede at det måske gik ind og overskrev det .menuButtons { color:#000000; font-size:10pt; font-weight:500; font-family:arial; text-align:left; cursor:pointer; border-style:solid; border-color:#000000; border-width:2px; width:100px; }
i for begge point for jeg brugte kode fra jer begge to, fejlen lå i at det kode som jakoba kom med der skulle tjekke om der var erklæret en variabel(#page) skulle placeres i den fil hvor menu'en var placeret og ikke i index.php som jeg havde gjort det, så blev jeg klogere, siger mange tak for hjælpen
smid lige et svar begge to så jeg kan give nogle point :-)
Synes godt om
Ny brugerNybegynder
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.