webForumDet fria alternativet

meny med undermenyer

PHPur PHP

6 svar · 896 visningar · startad av mhedda

Medlem sedan feb. 2000385 inlägg
Frågan#1

Hej jag håller på med en vertikal meny med undermenyer och har fått till att plocka ut huvudlänk och underlänk 1 men hur gör jag för att den skall fällas ut och fällas in när man klickar på huvud länk. Så här är min kod so far.


<?
function showLeftMeny($leftDoId,$catId)
	{
           global $SGTJofu,$PHP_SELF,$conn,$my_Menu,$cssVar,$leftDoId,$strHTMLcss;

openConn();

$sql = "select * from tbl_items where parentId = 0 order by itemName asc";

$nodeResult = mysql_query($sql) or die("SELECT query failed");

$counter = 0;

$strHTML="<div id=\"menycontainer\"><ul id=\"menySub\"><table align='left' width='150' border='0' cellspacing='0' cellpadding='0'>";
$strHTML.="<tr align='left' height='25' width='10'><td></td></tr>";
while($node = mysql_fetch_array($nodeResult))

{
 
		$pageID = $node['0'];
		$pageTitle = $node['2'];
                if($pageID==$leftDoId){$cssVar="Current";}else{$cssVar="";}
 echo $pageID;
echo $leftDoId;
echo $cssVar;
$strHTML.="<tr align='left'><td>";
//$strHTML.="<img id=\"img_root_".$counter."\" onClick=\"ToggleNode(td_root_".$counter.", img_root_".$counter.")\" border=\"0\" src=\"img/gifs/tridown3.gif\" style=\"cursor:hand\">";
$strHTML.= "<tr><td><li><a class=\"menySub\" href='".$_SERVER["PHP_SELF"]."?action=show_prodDesc&id=$pageID  &title=".$pageTitle."&itemIdShow=".$node[0]."&leftDoId=".$node[0]."&catId=".$node[0]."&child=yes'\" id=\"$cssVar\" ><img src='img/gifs/tri3.gif' border='0'>".$node[2]."</a></li></td></tr>";

$strHTML.="</td></tr>";

$strHTML.="<tr><td>";

$strHTML.="<table width='90' border='0' cellspacing='5' cellpadding='0'>";

$sql = "select * from tbl_items where parentId = {$node[0]} order by itemName asc";

@$childResult = mysql_query($sql);

while($child = mysql_fetch_row($childResult))

  {

   if($cssVar!=""){$strHTML.= "<tr><td>";
   $strHTML.= "<li><a href='".$_SERVER["PHP_SELF"]."?action=show_prodDesc&id=".$leftDoId."&itemIdShow=".$child[0]."&catId=".$child[0]."' id=\"$cssVar\">".$child[2]."</a></li></td></tr>";}

   

  }
     $strHTML.="</table>";

     $strHTML.="</td></tr>";
     

  }

     $strHTML.="</table>";
     $strHTML.= "</ul></div>";

       echo $strHTML;
 
        }
?>

Är det inblandning av javascript som gäller?
Isåfall hur ser detta ut.

MVH mhedda

Medlem sedan feb. 2000385 inlägg
#2

Fälls ut

Hej menyn fälls ut genom att jag jämför id på huvudlänk med om jag har skickat med idet med $leftDoId så om dom är lika så har jag klickat på huvudlänk så då fälls den ut men sen vill jag att den fälls in om jag klickar på huvudlänk igen samt att om jag går runt på sidan och den laddas om ska menyn minnas att den skall vara utfälld eller inte.

Vad göra, det kanske inte behövs något javascript.
Man kanske kan använda session eller?

MVH mhedda

Medlem sedan feb. 2000385 inlägg
#3

Ingen som har någon idé

Jag kanske är ute och cyklar, är det någon som har någon ide om hur man skall fortsätta med detta?
Eller något annat enkelt och bättre sätt?

Medlem sedan jan. 20061 808 inlägg
#4

Jag brukar inkludera min menyfil och sätta en submenu-variabel i sidorna.

<%
	Submenu = "somepage"
%>

I menyfilen bygger jag sedan upp strukturen för de olika huvudlänkarna.

<a href="/page/index.asp">Sidor</a><br />
<%
	If SubMenu = "somepage" Then
%>
<a href="/page/page1.asp">sidan 1</a><br />
<a href="/page/page2.asp">sidan 2</a><br />
<a href="/page/page3.asp">sidan 3</a><br />
<a href="/page/page4.asp">sidan 4</a><br />
<a href="/page/page5.asp">sidan 5</a><br />
<a href="/page/page6.asp">sidan 6</a><br />
<a href="/page/page7.asp">sidan 7</a><br />
<a href="/page/page8.asp">sidan 8</a><br />
<%
	End If
%>
<a href="/someotherpage/index.asp">Andra sidor</a><br />
<%
	If SubMenu = "someotherpage" Then
%>
<a href="/someotherpage/page1.asp">Andra sidan 1</a><br />
<a href="/someotherpage/page2.asp">Andra sidan 2</a><br />
<%
	End If
%>

Med denna variant visas endast underliggande länkar när man klickar på en huvudlänk.
Nu är detta visserligen i asp men det går ju att appliceras i php också.

Medlem sedan feb. 2000385 inlägg
#5

Fälls menyn in

Hej och tack för svaret jag undrar om jag har förstått rätt men om jag har det så fälls inte menyn in om man klickar en gång till på samma huvudlänk.

Och som jag har nu så har jag en indexsida som laddas om och då undrar jag om man klickar någon annanstans på sidan där man hänger på något annat komando på strängen då minns väl inte menyn med underlänkarna var den är.

Är det jag som tänker helt fel?

Medlem sedan jan. 20061 808 inlägg
#6

mhedda skrev:

Hej och tack för svaret jag undrar om jag har förstått rätt men om jag har det så fälls inte menyn in om man klickar en gång till på samma huvudlänk.

Korrekt, undermenyerna visas så länge man är inom samma Submenu.

mhedda skrev:

Och som jag har nu så har jag en indexsida som laddas om och då undrar jag om man klickar någon annanstans på sidan där man hänger på något annat komando på strängen då minns väl inte menyn med underlänkarna var den är.

Är det jag som tänker helt fel?

Jag är inte riktigt säker på att jag förstår hur du menar. Submenu läses varje gång en ny sida laddas och visar "rätt" underlänkar för den huvudmenyn.
En fördel med en inkluderad meny är att det är enkelt att bygga ut siten utan att behöva mecka med menyerna annat än i menyfilen.

Medlem sedan feb. 2000385 inlägg
#7

inkludra

Som jag har det nu så har jag allt i en funktion


<?
function showLeftMeny($leftDoId,$catId)
	{
           global $SGTJofu,$PHP_SELF,$conn,$my_Menu,$cssVar,$leftDoId,$strHTMLcss;

openConn();

$sql = "select * from tbl_items where parentId = 0 order by itemName asc";

$nodeResult = mysql_query($sql) or die("SELECT query failed");

$counter = 0;

$strHTML="<div id=\"menycontainer\"><ul class=\"menySub\"><table align='left' width='150' border='0' cellspacing='0' cellpadding='0'>";
$strHTML.="<tr align='left' height='25' width='10'><td></td></tr>";
while($node = mysql_fetch_array($nodeResult))

{
 
		$pageID = $node['0'];
		$pageTitle = $node['2'];
                if($pageID==$leftDoId){$cssVar="Current";}else{$cssVar="";}
 echo $pageID;
echo $leftDoId;
echo $cssVar;
$strHTML.="<tr align='left'><td>";
//$strHTML.="<img id=\"img_root_".$counter."\" onClick=\"ToggleNode(td_root_".$counter.", img_root_".$counter.")\" border=\"0\" src=\"img/gifs/tridown3.gif\" style=\"cursor:hand\">";
$strHTML.= "<tr><td><li><a class=\"menySub\" href='".$_SERVER["PHP_SELF"]."?action=show_prodDesc&id=$pageID  &title=".$pageTitle."&itemIdShow=".$node[0]."&leftDoId=".$node[0]."&catId=".$node[0]."&child=yes'\" id=\"$cssVar\" ><img src='img/gifs/tri3.gif' border='0'>".$node[2]."</a></li></td></tr>";

$strHTML.="</td></tr>";

$strHTML.="<tr><td>";

$strHTML.="<table width='90' border='0' cellspacing='5' cellpadding='0'>";

$sql = "select * from tbl_items where parentId = {$node[0]} order by itemName asc";

@$childResult = mysql_query($sql);

while($child = mysql_fetch_row($childResult))

  {

   if($cssVar!=""){$strHTML.= "<tr><td>";
   $strHTML.= "<li><a class=\"menySub\"  href='".$_SERVER["PHP_SELF"]."?action=show_prodDesc&id=".$leftDoId."&itemIdShow=".$child[0]."&catId=".$child[0]."' id=\"$cssVar\">".$child[2]."</a></li></td></tr>";}

   

  }
     $strHTML.="</table>";

     $strHTML.="</td></tr>";
     

  }

     $strHTML.="</table>";
     $strHTML.= "</ul></div>";

       echo $strHTML;
 
        }
?>

Sen så lägger jag in funktionen där jag vill att den skall vara på indexsidan så här

showLeftMeny($leftDoId,$catId);

då behöver man bara mecka i funktionen om man gör förändring och det är bra.

Nu till frågan jag kanske gör det svårare än vad det är men nu klickar jag på huvudlänk PRODUKTER då fälls undermenyn ut det fungerar i nuläget,
men när jag klickar på PRODUKTER igen vill jag att undermenyn fälls in. Som det fungerar nu så fälls undermenyn in när jag klickar i undermenyn..

MVH

141 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)