Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]rozwijane menu
Kahras
post 19.08.2014, 13:29:08
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 28.01.2014

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


Witam mam problem ponieważ nie wiem jak wykonać rozwijające się menu.(zwykle w PHP klikam i się rozwija)

Skrypt wygląda tak:

  1. if(isset($config['site']['quests']) && is_array($config['site']['quests']) && count($config['site']['quests']) > 0)
  2. {
  3. $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=7 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD align="left" COLSPAN=2 CLASS=white><B>Quests</B></TD></TD align="right"></TD></TR>';
  4. $number_of_quests = 0;
  5. foreach($config['site']['quests'] as $questName => $storageID)
  6. {
  7. $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']);
  8. $number_of_quests++;
  9. $main_content .= '<TR BGCOLOR="' . $bgcolor . '"><TD WIDTH=95%>' . $questName . '</TD>';
  10. if($player->getStorage($storageID) === null)
  11. {
  12. $main_content .= '<TD><img src="images/false.png"/></TD></TR>';
  13. }
  14. else
  15. {
  16. $main_content .= '<TD><img src="images/true.png"/></TD></TR>';
  17. }
  18. }
  19. $main_content .= '</TABLE></td></tr></table><br />';
  20. }


Lista jest b.długa:



I chciałbym by tak to wyglądało ze zamiast "Quests"(na samej gorze) by pisało rozwiń i by się rozwijała cala lista.


Wie ktoś coś jak to wykonać?

Ten post edytował Kahras 19.08.2014, 13:30:33
Go to the top of the page
+Quote Post
Turson
post 19.08.2014, 13:32:00
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Nie zrobisz rozwijanego menu w samym PHP. Do tego potrzebny jest Javascript. W google trochę znajdziesz przykładów
Go to the top of the page
+Quote Post
Kahras
post 19.08.2014, 13:40:11
Post #3





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 28.01.2014

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


No tak jednak masz racje.
Tutaj jest 1 wlasnie przykladowy skrypt ktory dziala tak jak ma dzialac:

  1. $main_content = "
  2. <script type=\"text/javascript\"><!--
  3. function show_hide(flip)
  4. {
  5. var tmp = document.getElementById(flip);
  6. if(tmp)
  7. tmp.style.display = tmp.style.display == 'none' ? '' : 'none';
  8. }
  9. --></script>";
  10.  
  11. //zapytania//
  12. $lua = parse_ini_file($config['site']['server_path'].'/config.lua');
  13. $ip = explode("*", $lua['ip']);
  14. $port = explode("*", $lua['loginPort']);
  15. $motd = explode("*", $lua['motd']);
  16. $accounts = $SQL->query('SELECT COUNT(*) FROM `accounts` WHERE `id`>0;')->fetch();
  17. $players = $SQL->query('SELECT COUNT(*) FROM `players` WHERE `id`>0;')->fetch();
  18. $guilds = $SQL->query('SELECT COUNT(*) FROM `guilds` WHERE `id`>0;')->fetch();
  19. //reszta//
  20. $main_content .= '<table BORDER=0 CELLPaDDING="4" CELLSPACING="1" width=100%;>
  21. <TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD ALIGN=center CLASS=white><B>';
  22. $main_content .= "<a onclick=\"show_hide('statl'); return false;\" style=\"cursor: pointer;\">&raquo; View server information &laquo;</a></B></TD></TR></TABLE>";
  23.  
  24. $main_content .= '<center><TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=90% id="statl" style="display: none;" ><TR><TD><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'>
  25. <tr bgcolor="'.$config['site']['darkborder'].'"><td>Server IP: '.$lua['ip'].'</li></td>
  26. <td>Accounts on '.$config['server']['serverName'].': '.$accounts[0].'</li></td></tr>
  27.  
  28. <tr bgcolor="'.$config['site']['lightborder'].'"><td>Port: '.$lua['loginPort'].'</li></td>
  29. <td>Players on '.$config['server']['serverName'].': '.$players[0].'</li></td></tr>
  30.  
  31. <tr bgcolor="'.$config['site']['darkborder'].'"><td>MOTD: '.$lua['motd'].'</li></td>
  32. <td>Guilds on '.$config['server']['serverName'].': '.$guilds[0].'</center></td></tr>
  33. </table>
  34. </table>
  35. ';


Klikam i sie rozwija.
Tylko nie umiem kodu odpowiadającego za te rozwijanie przenieść do mojego skryptu: /
Go to the top of the page
+Quote Post
CuteOne
post 19.08.2014, 14:36:12
Post #4





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


To pora się nauczyć?
google ->
js poradnik,
css poradnik,
html poradnik
Go to the top of the page
+Quote Post
trueblue
post 19.08.2014, 14:45:23
Post #5





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1827
Dołączył: 11.03.2014

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


Możesz to zrobić w czystym php po prostu drukując dane podkategorie (tylko wybranej kategorii), jednak nie będzie tu efektu płynności i dokona się po przeładowaniu strony.
Możesz zmodyfikować powyższą wersję drukując zawsze podkategorie wszystkich kategorii i nadając odpowiedni styl display, również działanie po przeładowaniu.

A tu masz w czystym CSS:
http://jsfiddle.net/z37g782t/
http://jsfiddle.net/z37g782t/1/


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 6.07.2025 - 21:45