Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Problem z menu
Forum PHP.pl > Forum > Przedszkole
wcg
Witam!
Na mojej stronie mam menu tworzone za pomoca rekordow pobieranych z bazy.
Chciałbym stworzyć do przy niektorych nazwach podmenu. Wymyśliłem, ze moge to zrobic a taki sposób:
Lista z menu głównym będzie miało dodatkowy parametr, który będzie identyfikował przypisane do menu pod menu. ($sub). I teraz jak nacisne na menu glowe chcialbym aby pod spodem wysliwtlio sie pod menu.


  1. <?php
  2. $sube = $_GET['sub'];
  3.  
  4. $wynik = mysql_query("SELECT * FROM menu WHERE akt_pl='1'");
  5. while ($aa = mysql_fetch_array($wynik)) { 
  6. $nazwa_pl = $aa['nazwa_pl'];
  7. $id = $aa['id'];
  8. $strona = $aa['strona'];
  9. $sub = $aa['sub'];
  10. print "<img src='images/bullet.gif' alt='' width='10' height='10'><a href='index.php?go=strona&id=$strona&sub=$sub'>$nazwa_pl</a><br>";
  11.  
  12.  $wynik1 = mysql_query("SELECT * FROM menu WHERE akt_pl='1' AND sub='$sube' ");
  13.  while ($aa1 = mysql_fetch_array($wynik1)) { 
  14.  $nazwa_pl1 = $aa['nazwa_pl'];
  15.  $id1 = $aa['id'];
  16.  $strona1 = $aa['strona'];
  17.  print "<img src='images/bullet.gif' alt='' width='10' height='10'><a href='index.php?go=strona&id=$strona'>$nazwa_pl1</a><br>";
  18.  }
  19. }
  20. ?>


Problem w tym wszystkim polega na tym, ze po nacisnieciu na dane menu podmenu wyswietla mi sie calkim pod wszytskimi rekordami a nie pod menu pod ktoreym jest przypisane.
Czy ktos wie jak temu zaradzić? Proszę o pomoc.
wcg
Nie nie chodzi

Przy otwarciu strony jest tak

Strona główna
O nas
Oferta
Kontakt

Przy kliknieciu i jednoczesnie pobraniu danych z bazy chce zeby było tak:

Strona główna
O nas
O naszych klientach
Produkty
Oferta
Kontakt
sticker
możesz od razu dać całe menu a to co nie chcesz pokazać ukryj stylami display: none i przy kliknięciu pokazuj wywołując akcję javascriptu zmieniające styl dla elementów które chcesz pokazać/ukryć
wcg
Może jednak ktoś wie jak poprawić ten skrypt zeby nie uzywac JS. Myślę ze jest to do zrobienia. Chodzi tylko o przypisanie odpowiedniemu menu pod menu. Pomóżcie.
gszesiek
chyba Cię źle zrozumiałem na początku
bo jak chcesz wysłać od razu całe menu, a schować część to bez problemu możesz wykorzystać css
Lonas
Też akurat sie tym zajmuje - rozwiazalem to tak :

menu_glowne.php

  1. <?
  2.  
  3.  
  4. $wynik_menu = mysql_query(" SELECT * FROM menu WHERE sekcja = 'menu_glowne' AND master<>0 ORDER BY pozycja_menu asc ");
  5. $ilosc_pozycji = mysql_num_rows($wynik_menu);
  6.  
  7. for ($i=; $i<$ilosc_pozycji ; $i++) {
  8. $row = mysql_fetch_array($wynik_menu);
  9. $nazwa = $row['nazwa_1'];
  10. $master = $row['master'];
  11.  
  12.  
  13. echo'<a href = "index_sub.php?master='.$master.'"> '.$nazwa.' </a> <br> ';
  14.  
  15.  
  16.  
  17. }
  18.  
  19.  
  20. ?>


menu_sub.php

  1. <?
  2. $master_wybrane = $_GET['master'];
  3.  
  4. $all = mysql_query(" SELECT * FROM menu WHERE sekcja = 'menu_glowne' ORDER BY pozycja_menu asc ");
  5. //$wynik_menu = mysql_query(" SELECT * FROM menu WHERE sekcja = 'menu_glowne' AND master<>0 ORDER BY pozycja_menu asc ");
  6. $ilosc_pozycji = mysql_num_rows($all);
  7.  
  8. $wynik_podmenu = mysql_query(" SELECT * FROM menu WHERE sekcja = 'menu_glowne' AND przynaleznosc = '$master' ORDER BY pozycja_menu asc ");
  9. $ilosc_pozycji_sub = mysql_num_rows($wynik_podmenu);
  10.  
  11. for ($i=; $i<$ilosc_pozycji ; $i++) {
  12. $row = mysql_fetch_array($all);
  13.  $nazwa = $row['nazwa_1'];
  14.  $master = $row['master'];
  15.  $przynaleznosc = $row['przynaleznosc'];
  16.  $id = $row['id'];
  17. if($master<>){
  18. echo'<a href = "index_sub.php?master='.$master.' "> '.$nazwa.' </a> <br> '; 
  19. }else {
  20.  
  21. for ($j=; $j<$ilosc_pozycji_sub ; $j++) {
  22.  $row_2 = mysql_fetch_array($wynik_podmenu);
  23.  $przynaleznosc_2 = $row_2['przynaleznosc'];
  24. if($przynaleznosc_2 == $master_wybrane) {
  25. print " - ";
  26. print $row_2['nazwa_1'];
  27. echo'<br>';} } }
  28.  
  29.  
  30.  
  31.  
  32.  
  33. }
  34. ?>


edit : jednak nie do konca dziala nie zauwazylem bledu - jak poprawie to wkleje dobry kod .

U mnie problem jest taki że wszystkie submenu pojawiaja sie zawsze pod 1 - tez nie wiem jak to ugrysc

Okej - tak dziala :

menu_glowne.php bez zmian

menu_sub.php

  1. <?
  2. $master_wybrane = $_GET['master'];
  3.  
  4.  
  5. $all = mysql_query(" SELECT * FROM menu WHERE sekcja = 'menu_glowne' AND master <> 0 ORDER BY pozycja_menu asc ");
  6. $ilosc_pozycji = mysql_num_rows($all);
  7.  
  8.  
  9. $wynik_podmenu = mysql_query(" SELECT * FROM menu WHERE sekcja = 'menu_glowne' AND przynaleznosc= '$master_wybrane' ORDER BY pozycja_menu asc ");
  10. $ilosc_pozycji_sub = mysql_num_rows($wynik_podmenu);
  11.  
  12. for ($i=; $i<$ilosc_pozycji ; $i++) {
  13. $row = mysql_fetch_array($all);
  14.  $nazwa = $row['nazwa_1'];
  15.  $master = $row['master'];
  16.  $przynaleznosc = $row['przynaleznosc'];
  17.  $id = $row['id'];
  18.  
  19. echo'<a href = "index_sub.php?master='.$master.' "> '.$nazwa.' </a> <br> ';
  20.  
  21. if($master == $master_wybrane) {
  22.  for ($j=; $j<$ilosc_pozycji_sub ; $j++) {
  23.  $row_2 = mysql_fetch_array($wynik_podmenu);
  24. print " - ";
  25. print $row_2['nazwa_1'];
  26. echo'<br>';} }
  27. }
  28.  
  29.  
  30. ?>
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.