webForumDet fria alternativet

Noob-aktig fråga ang Include

PHP

5 svar · 489 visningar · startad av haider

Medlem sedan jan. 2003956 inlägg
Frågan#1

Hej!

Jag har en fråga om vad include klarar av. Själva tanken på vad include är och hur den används är tilltalande.

Idén är att jag har en menyfil separat. Den laddas in till varje sida. Så varje gång jag behöver ändra menyn så ändrar jag bara en fil, istället för som det är nu, varenda sida.

Till problemet: Det finns olika kategorier. Beroende på kategori, så är en av menyvalen aktiva (aktiv = visar en rad undermenyer).

Så frågan är följande; Kan man med include använda en parameter så att den laddar menyn med en inställning eller så?

Medlem sedan nov. 20014 054 inlägg
#2

Du kan ju alltid skicka parameter via querystring. ?something=something
Sen tar du och sätter att i den inkluderade filen att något skall hända om $_GET['something'] = "something" ..

För man kan INTE skicka parametrar på detta sätt:

<?php
include "inkluderingsfil.php?something=something";
?>

Vet inte om jah har förstått dig rätt i din tanke! :)

Medlem sedan jan. 2003956 inlägg
#3

Tjena Mannen..

Om man INTE kan skriva så, finns det något annat sätt? Det var just nåt sånt som jag tänkte mig. Men om vi då säger att just det specifika skrivsättet inte går, finns någon annan metod för det?

Alternativt, har du nån idé hur man _istället_ bör skapa en menyfil som ska visa skilda aktiva menyval beroende på aktiv kategori?
På rak arm hade jag kunnat göra tre olika menyfiler om jag har tre olika kategorier. Det gör att jag måste ändra tre meny-filer. Det är fortfarande bättre än att ändra tiotalet sidor. Men en enda menyfil vore ändå att föredra, så jag inväntar feedback på om det finns en annan väg o gå.

Medlem sedan mars 20025 907 inlägg
#4

Eftersom PHP-koden från filen som ska inkluderas "klistras in" i ursprungsfilen så kan du använda dig av en vanlig variabel som du sedan läser av i inkluderingsfilen.

<?php
$menyval = 2;
include 'inkluderingsfil.php';
?>
Medlem sedan jan. 2003956 inlägg
#5

Aha, det var schysst.

Finns det någon tutorial om detta, eller kanske är det så lätt att jag kan få en stomme av er att arbeta på?

Min nuvarande meny är lite grafik, men det som är avgörande är att jag har tre div:ar med varsin class.
Det finns två class-namn att välja på, hidden o visible.

Kan jag få en liten exempelkod på hur "inkluderingsfilen.php" bör se ut, för då kan jag implentera min meny och sedan titta på den "aktiva" exempelkod jag får som lyssnar till $menyval och aktiverar rätt class beroende på menyval.

Så här ser den "aktiva" koden i HTML ut just nu (ja, jag har inte gått över till PHP, men ansåg att PHP troligen skulle hjälpa mig i det jag behöver):

<div id="SubMenu_0" class="display_none"></div>
<div id="SubMenu_1" class="display_block"><a href="/kategori1/index.html"><img src="/bilder/index_kategori1.gif" width="99" height="15" border="0"></a> ... ...</div>
<div id="SubMenu_2" class="display_none"><a href="/kategori2/index.html"><img src="/bilder/index_kategori2.gif" width="80" height="15" border="0"></a> ... ...</div>

Så tanken är att PHP skriptet lyssnar till vilket $menyval jag har valt och modifierar ovanstående till att bli display_block.

Har någon en möjlighet att ge mig en hint?
Resten av HTML koden blir ju bara utfyllnad eftersom den informationen är statisk eller hur?

:D

Medlem sedan nov. 20014 054 inlägg
#6

Själv hade jag nog kanske gjort så här. Dvs om du vill visa olika submenyer beroende på vad för $menyval som gjorts?

Jag tänker mig att vi har tre huvudlänkar så här

<a href="index.php?menyval=sports">Sports</a>
<a href="index.php?menyval=sex">Sex</a>
<a href="index.php?menyval=soaps">Soaps</a>

Och vi vill visa olika submenyer beroende på vad vi klickat på för länk

Inkluderingsfilen, skulle kunna se ut så här då.

switch($_GET['menyval']) {

   // Om klickat på sports
   case "sports":
   // skriv ut  något.   
   echo "<div id=\"submenu_1\">Meny 1</div>";
   break;
   
   // Om klickat på sex..   
   case "sex":
   // skriv ut  något
  echo "<div id=\"submenu_2\">Meny 2</div>"; 
  break;
   
   // Om klickat på soaps..
   case "soaps":
   // Skriv ut något kanske..
   echo "<div id=\"submenu_3\">Meny 3</div>";
   break;

   // Om man inte valt något.
   default:
   // Skriv ut något kanske..
   echo "<div id=\"submenu_4\">Meny 4</div>";
   break;
}

Men om det är så du vill är ju en annan sak! :)

269 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)