Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql]menu rozwijane
Forum PHP.pl > Forum > Przedszkole
alfi1986
Witajcie potrzebuje zrobić menu rozwijane szablon ma byc podobny jak na tej stronie szablon mianowicie menu na górze następnie
menu boczne które po naciśnięciu będzie sie rozwijało tak jak w przykładzie. Potrzebuje to zrobić z wykorzystaniem mysql , żeby wszystko znajdowało sie w tabelach. Prosze pomocy
lilik
tworzysz tabele z linkami glwonymi potem druga z podlinkami gdzie do takiego "podlinku" przypisujesz id glownego linku do ktorego ma przynalezec a potem tylko odpowidnio pobierasz z bazy danych linki glowne i podlinki i wyswietlasz
pawella
Może takie jak PHP Layer menu?

pzdr



Cytat(lilik @ 3.04.2008, 21:16:40 ) *
tworzysz tabele z linkami glwonymi potem druga z podlinkami gdzie do takiego "podlinku" przypisujesz id glownego linku do ktorego ma przynalezec a potem tylko odpowidnio pobierasz z bazy danych linki glowne i podlinki i wyswietlasz


tia... a jak będziesz chciał uzyskać głębokość gałęzi = 100 odpytasz setkę tabel?
lilik
ja pisalem odnosnie tego jego przykladu winksmiley.jpg
marcio
A nie lepiej uzyc JS/DHTML??
pawella
Cytat(marcio @ 3.04.2008, 21:50:44 ) *
A nie lepiej uzyc JS/DHTML??


No ale czym jest podany przykład jak nie (tak jak to napisałeś JS/DHTML)?
Myślę że to dokładnie to samo, jeżeli chcesz drzewo trzymać w bazie bo zamierzasz je edytować to na początek polecam.
Menu wytrzymuje do pozycji potem zaczyna zmulać.

Jeżeli koniecznie chcesz pisać samemeu to użyj jednej tabeli. I przjrzyj się jakiemuś silniczkowi JavaScript no jQuery.

Pozdrawiam
marcio
Sorki ale nie zagladalem w link smile.gif
-alfi1986-
pomóżcie mi napisać ten kod.
Powiedzcie jakie tabele trzeba stworzyć jakie pola sa potrzebne żeby wszystko miało powiazania ze sobą i pogol funkcjonować...

Jak napisać ze jeżeli kliknę w górne menu to dla niego jest wyświetlane dane menu lewe i dodatkowo wyświetlana dana treść w oknie nazwanym np. main.

podam swoje gg może ktoś będzie tak miły i sie odezwie i pomoże smile.gif 3229465
marcio
Poprostu dajesz zdarzenie onmouseover etc... i na niego funkcje i gdy ktos kliknie rozwijasz menu mniej wiecej jak php-fusion ze jak najedziesz na temat to masz info o nim i dziala to na takiej samej zasadzie smile.gif
-alfi1986-
A mogl bys mi rozpisac jak to okladnie zrobic bo musze to sklecic w miare szybko sad.gif bede bardzo wdzieczny i jak bede mogl to sie odwdziecze
Cysiaczek
Koniec zabawy - nie umiesz, nie chcesz? Trudno - My gotowców w takich przypadkach nie dajemy, bo to jest forum dla programistów.

Zamykam


Otwieram, bo ponoć autor przedstawi więcej danych.
alfi1986
zrobiłem w pracy taka funkcje.... jak napisać warunek: jeżeli wchodze na strone mam home.php?id=1 to menu zmienia styl css na podświetlenie, a jak napisać że jeżeli jest OR home.php to też da tyl zaznaczenia??
  1. <?php
  2. function menugorne()
  3. { // BEGIN function menugorne
  4. $sql1 = 'SELECT * FROM `menugorne` LIMIT 0, 30 ';
  5. //echo $sql1;
  6. $q1 = mysql_query($sql1);
  7. while ($wiersz = mysql_fetch_row($q1))
  8.  {
  9.  
  10.  
  11.  
  12.  if(($_GET['id'] == $wiersz[0]) OR ($_GET['id'] == "")){
  13.  echo '<li id="current"><a id="current" href='.$wiersz[2]."?id=".$wiersz[0]."&zakladka=".$wiersz[1].">".$wiersz[1]."</a></li>";
  14. }else{
  15. echo '<li><a href='.$wiersz[2]."?id=".$wiersz[0]."&zakladka=".$wiersz[1].">".$wiersz[1]."</a></li>";
  16. }
  17.  
  18.  
  19.  }
  20.  
  21. }
  22. ?>

jak dokładnie to zapisać żeby działało smile.gif
OR ($_GET['id'] == ""
Kicok
Znaczy jeśli nie ma podanego id w adresie strony, to żeby podświetlał wynik dla $wiersz[0] == 1?


No to:
- jeżeli ( nie podano $_GET['id'] ORAZ $wiersz[0] == 1 ) LUB ( podano $_GET['id'] ORAZ $wiersz[0] == $_GET['id'] ) to:
----- podświetl
- w przeciwnym wypadku
----- nie podświetlaj

Wykorzystaj empty" title="Zobacz w manualu PHP" target="_manual lub isset" title="Zobacz w manualu PHP" target="_manual




PS. Nie radziłbym tak polegać na wartościach ID pobranych z bazy. Lepiej dodaj sobie do zapytania ORDER BY `id` i zamiast sprawdzania czy $wiersz[0] == 1 sprawdzaj czy jest to pierwszy wiersz wyniku zapytania.
alfi1986
if((empty($_GET['id']) AND $wiersz[0] == 1) OR ($_GET['id'] == $wiersz[0])){ napisałem warunek w taki sposób i działa.Dziękuje za pomoc z tym ale przedemną dużo pytań i jeszcze więcej nerwów.
Prześle moje Funkcje. Powiedzcie czy nie ma jakiś baboli... w kodzie robie strone dla swojej firmy
http://q-matic.com/home-1.aspx podświetlanie działa smile.gif przekazuje mi dane dalej smile.gif menu lewe oraz wrzucanie tekstów też zrobiłem ale nie wiem czy dobrze poprawcie jak są babole albo naprowadzcie mnie co zmienić smile.gif (i może jak ) smile.gif
  1. <html>
  2. <head>
  3. <link rel="stylesheet" type="text/css" href="q-matic/style.css" />
  4. <meta http-equiv="content-type" content="text/xml"; charset="utf-8" />
  5. <meta http-equiv="content-language" content="pl" />
  6. <title> Wyniki
  7. </title>
  8. </head>
  9. <body>
  10. <?php
  11. /* funkcja laczaca do bazy */
  12. function polacz()
  13. { // BEGIN function polacz
  14. $link = mysql_connect('ip', 'user', 'pass')
  15. or die('Nie mona si poczy: ' . mysql_error());
  16. //echo 'Poczenie nawizane';
  17. mysql_select_db('strona') or die ('Nie mozna wybra bazy danych');
  18. } // END function polacz
  19. /* funkcja wyswielajaca newsy z bazy */
  20. function wysnews()
  21. { // BEGIN function wysnews
  22. $sql = "SELECT `data_newsa`,`tytul_newsa`,`tresc_newsa` FROM `news` ORDER BY `data_
    newsa` DESC LIMIT 5"
    ;
  23. $q = mysql_query($sql);
  24. while ($wiersz = mysql_fetch_row($q))
  25.  {
  26.  echo '<div class="spacer"></div><div id="divNewsContent" style="margin-bottom: 6px"><div class="NewsContent">';
  27.  echo $wiersz[0].'<br><a href="put_link_here.htm">'.$wiersz[1].'</a><br>'.nl2br($wiersz[2]).'<br>';
  28.  }
  29.  
  30. } // END function wysnews
  31. /* funkcja wyswielająca menu gorne */
  32. function menugorne()
  33. { // BEGIN function menugorne
  34. $sql1 = 'SELECT * FROM `menugorne` LIMIT 0, 30 ';
  35. //echo $sql1;
  36. $q1 = mysql_query($sql1);
  37. while ($wiersz = mysql_fetch_row($q1))
  38.  {
  39.  
  40.  
  41.  if((empty($_GET['id']) AND $wiersz[0] == 1) OR ($_GET['id'] == $wiersz[0])){
  42.  echo '<li id="current"><a id="current" href='.$wiersz[2]."?id=".$wiersz[0]."&zakladka=".$wiersz[1].">".$wiersz[1]."</a></li>";
  43. }else{
  44. echo '<li><a href='.$wiersz[2]."?id=".$wiersz[0]."&zakladka=".$wiersz[1].">".$wiersz[1]."</a></li>";
  45. }
  46.  }
  47. } // END function menugorne
  48. function menulewe()
  49. { // BEGIN function menulewe
  50. $sql2 = "SELECT * FROM `lewemenu` LIMIT 0, 130";
  51. //echo $sql1;
  52. $q2 = mysql_query($sql2);
  53. //echo '<div id="sub2levelContainer"><ul id="sub2level">';
  54.  while ($wiersz = mysql_fetch_row($q2))
  55.  {
  56.  if($_GET['id'] == $wiersz[1]){
  57.  echo "<li><a href="."produkty.php"."?main=".$wiersz[3]."&id=".$_GET['id'].">".$wiersz[2].'</a></li>';
  58. }else{
  59. //echo $wiersz[1];
  60. }
  61.  //echo '</ul></div>';
  62. } // END function menulewe
  63. }
  64. function main()
  65. { // BEGIN function main
  66. $zapytanie = 'SELECT * FROM lewemenu ';
  67.  
  68. $q3 = mysql_query($zapytanie);  
  69. $sql2 = "SELECT * FROM `main`";
  70. $q2 = mysql_query($sql2);
  71. //echo '<div id="sub2levelContainer"><ul id="sub2level">';
  72.  while ($wiersz1 = mysql_fetch_row($q3)) {
  73.  if ($_GET['main'] == $wiersz1[3]) {
  74.  
  75.  echo '<div id="ctl1197747713375_ctl05_divTitle" class="contenttitle">
  76.  
  77. '.$wiersz1[2].'
  78.  
  79. </div>';
  80.  }
  81.  
  82.  }
  83.  
  84.  while ($wiersz = mysql_fetch_row($q2))
  85.  {
  86.  if($_GET['main'] == $wiersz[1]){
  87.  echo '<div id="ctl1197747713375_ctl05_divText" class="contenttext">';
  88. echo $wiersz[3];
  89. echo '</div>';
  90.  }else{
  91. //echo $wiersz[1];
  92. }
  93.  //echo '</ul></div>';
  94. }
  95.  
  96. } // END function main
  97. function nawigator()
  98. { // BEGIN function nawigator
  99. $main = "SELECT * FROM menugorne";
  100. $sql_main = mysql_query($main);
  101. $lewe = "SELECT * FROM menulewe";
  102. $sql_lewe = mysql_query($lewe);
  103. } // END function nawigator
  104. ?>
  105. </body>
  106. </html>

sql

lewemenu
Pole Typ Null Domyślnie Komentarze id int(11) Nie

id_strony int(2) Nie 0
tytyl text Nie

main int(2) Nie 0

main
Pole Typ Null Domyślnie Komentarze id int(3) Nie

main int(3) Nie

name text Nie

tresc text Nie


menugorne
Pole Typ Null Domyślnie Komentarze id int(3) Nie

tytul text Nie

link text Nie


news
Pole Typ Null Domyślnie Komentarze id int(3) Nie

tytul_newsa text Nie

tresc_newsa text Nie

data_newsa date Nie

teraz zastanawiam sie jak zrobić nagłówki rak wejdziemy w jakiś menurone rozwija nam sie meu lewe gdzie nagłówkiem jest tytyl zakładki z menu gornego... na dole są jak by menu level1 i dalej do niego level2...
zastanawiam sie jak pod to zaplanowac baze sql i zmodyfikowac to co jest...
Cysiaczek
Dodaj bbcode do swoich listingów, inaczej znów zamknę - tym razem na stałe.
alfi1986
Forumowicze pisałem skrypt troche może jest zagmatwany ale jest w nim jakiś błąd nie moge dojść gdzie coś z wyświetlaniem nie działa...
  1. <?php
  2. function menulewe()
  3. { // BEGIN function menulewe
  4. $sql2 = &#092;"SELECT * FROM `lewemenu`\";
  5. //echo $sql1;
  6. $q2 = mysql_query($sql2); 
  7. $sql6 = 'SELECT * FROM lewemenu ORDER BY `lewemenu` . `przylewe` ASC ';
  8.  $q6 = mysql_query($sql6); 
  9. while ($wierszl = mysql_fetch_row($q2)) {
  10. if ($_GET['id'] == $wierszl[1]) {
  11.  
  12.  
  13.  if (($wierszl[0] == $wierszl[4]) ) {
  14. echo '<li id=\"current\"><a id=\"current\" href=produkty.php?main='.$wierszl[3].'&id='.$_get['id'].'&zakladka='.$_get['zakladka'].'&przylewe='.$wierszl[0].'>'.$wierszl[2].'';
  15. while ($wierszr = mysql_fetch_row($q6)) {
  16. if (($wierszr[5] == 0) AND ($_GET['przylewe'] == $wierszr[4]) AND ($_GET['id'] == $wierszl[1] )) {
  17. if ($wierszl[5] == 0) {
  18. $zakladka2 = $wierszl[2];
  19. }
  20.  echo '<div id=\"sub2levelcontainer\">
  21. <ul id=\"sub2level\">';
  22.  echo &#092;"<li><a href=\".\"produkty.php\".\"?main=\".$wierszr[3].\"&id=\".$_get['id'].\"&zakladka=\".$_get['zakladka'].'&przylewe='.$wierszl[0].\"&zakladka1=\".$_get['zakladka1'].\"&zakladka2=\".$wierszr[2].\">\".$wierszr[2].'</a href=\".\"produkty.php\".\"?main=\".$wierszr[3].\"&id=\".$_get['id'].\"&zakladka=\".$_get['zakladka'].'&przylewe='.$wierszl[0].\"&zakladka1=\".$_get['zakladka1'].\"&zakladka2=\".$wierszr[2].\">';
  23.  echo '';
  24.  }
  25. }
  26. }else{
  27.  
  28.  
  29.  
  30. }
  31. }else{
  32. //echo 'dupa
  33. ;
  34. }
  35. }
  36. // END function menulewe
  37. }
  38. ?>

id id_strony_zakladka tytyl main przylewe naglu
1 2 jakis 100 1 0


Działa tak że wypisuje dla pierwszego nagłówka ok ale problem robi sie przy 2 jeżeki nacisne na 2 pozycja która powinna sie tam znajdować pojawia sie w 1 jak to naprawić smile.gif
będe bardzo wdzięczy osobie która mi udzieli odpowiedzi smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.