Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql]menu rozwijane
lukash82
post
Post #1





Grupa: Zarejestrowani
Postów: 320
Pomógł: 2
Dołączył: 17.03.2006
Skąd: Siemianowice

Ostrzeżenie: (0%)
-----


Witam. Mam takie pytanko. Probuje wlasnie zrobic menu rozwijane w php/mysql bez uzycie js. Nie wiem czy jest to tak do konca mozliwe ale cos juz mam. Zrobilem dwie tabele, w pierwszej menu glowne (menu_id, menu_nazwa) i druga tabela (podmenu_id, podmenu_nazwa, podmenu_nalezy). Pole podmenu_nalezy wskazuje do ktorego punktu menu nalezy dane podmenu. Troche to zamotane ale daje rade jak narazie:) Menu ma miec tylko jeden poziom zagniezdzenia wiec chyba nie ma co bawic sie z drzewkami itd... (i tak nie bardzo siedze w temacie drzewek). To co mam wyglada tak:
  1. <?php
  2. include('polaczenie.php');
  3. $sql = "SELECT * FROM menu ORDER BY menu_id";
  4. $results = mysql_query($sql) or die (mysql_error());
  5. echo "<ul>";
  6. while ($row = mysql_fetch_array($results)) 
  7. {
  8. extract($row);
  9. echo "<li><a href='index.php?menu=" . $row['menu_id'] . "'>" . $row['menu_nazwa'] . "</a></li>";
  10. {
  11. $podmenu = $row['menu_id'];
  12. $sql2 = "SELECT * FROM podmenu WHERE podmenu_nalezy='$podmenu' ORDER BY podmenu_id";
  13. $results2 = mysql_query($sql2) or die (mysql_error());
  14. echo "<ul>";
  15. while ($row2 = mysql_fetch_array($results2))
  16. {
  17. extract($row);
  18. echo "<li><a href='index.php?podmenu=" . $row2['podmenu_id'] . "'>" . $row2['podmenu_nazwa'] . "</a></li>";
  19. } 
  20. echo "</ul>";
  21. }
  22. }
  23. echo "</ul>";
  24. ?>

Wyswietla mi to niestety cale menu od razu czyli jesli w menu glownym pojawi sie jakies podmenu to tez od razu jest wyswietlane. W sumie nie wyglada az tak zle ale chcialbym aby podmenu pojawilo sie dopiero po kliknieciu w ktores z menu i zwinelo, kiedy sie kliknie na inne menu. Nie chodzi o zadne plynne przejscie bo do tego potrzebowalbym js a to nie wchodzi w gre raczej. Chodzi o to, zeby ta czesc pojawila sie dopiero po kliknieciu:
  1. <?php
  2. $podmenu = $row['menu_id'];
  3. $sql2 = "SELECT * FROM podmenu WHERE podmenu_nalezy='$podmenu' ORDER BY podmenu_id";
  4. $results2 = mysql_query($sql2) or die (mysql_error());
  5. echo "<ul>";
  6. while ($row2 = mysql_fetch_array($results2))
  7. {
  8. extract($row);
  9. echo "<li><a href='index.php?podmenu=" . $row2['podmenu_id'] . "'>" . $row2['podmenu_nazwa'] . "</a></li>";
  10. } 
  11. echo "</ul>";
  12. ?>

Mam nadzieje, ze nie zamotalem zbytnio pytania. Wyglada to tak narazie:
(IMG:http://www.stronyinternetowe.slask.pl/forum/img1.jpg) .
Jesli macie jakis pomysl na cos takiego to dajcie znac. Pozdrawiam, Łukasz
Go to the top of the page
+Quote Post
marian84
post
Post #2





Grupa: Zarejestrowani
Postów: 185
Pomógł: 10
Dołączył: 29.01.2008

Ostrzeżenie: (0%)
-----


Skrypt js umiesc w head: Pobierz plik

W Twoim kodzie popraw znaczniki ul i li tak jak ponizej
Kod
<?php
include('polaczenie.php');
$sql = "SELECT * FROM menu ORDER BY menu_id";
$results = mysql_query($sql) or die (mysql_error());
echo "<dl id='menu0'>";
while ($row = mysql_fetch_array($results))
                {  
                    extract($row);
                    echo "<dt><a href='index.php?menu=" . $row['menu_id'] . "'>" . $row['menu_nazwa'] . "</a></dt>";
                    {
                        $podmenu = $row['menu_id'];
                        $sql2 = "SELECT * FROM podmenu WHERE podmenu_nalezy='$podmenu' ORDER BY podmenu_id";
                        $results2 = mysql_query($sql2) or die (mysql_error());
                        while ($row2 = mysql_fetch_array($results2))
                            {
                            extract($row);
                            echo "<dd><a href='index.php?podmenu=" . $row2['podmenu_id'] . "'>" . $row2['podmenu_nazwa'] . "</a></dd>";
                            }
                    }
                }
echo "</dl>";
?>
<script type="text/javascript">
// <![CDATA[
new Menu('menu0');
// ]]>
</script>


powinno grac. Jak nie daj znac

Ten post edytował marian84 31.03.2008, 12:03:24
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 17:53