Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP] Lista rozwijana, jak dodać dynamiczną zmianę
Forum PHP.pl > Forum > Przedszkole
kubek3898
Obecnie tworzę Panel administracyjny dla mojego małego skryptu. Problem w tym, że chcę, by zawierał on listę rozwijaną np. gdy jestem, na stronie głównej panelu:

Panel administracyjny -> Kokpit

, lub gdy przeglądam wszystkie konta użytkowników:

Panel administracyjny -> Wszystkie konta

Mam nadzieję, że wiecie o co chodzi. Przejdźmy jednak do sedna. Jak zrobić, by druga część (gdyż pierwsza czyli 'Panel administracyjny', jest wciąż taka sama) zmieniała się dynamicznie wraz ze zmianą strony? Przykładowo header.php, który dołącza wszystkie pliki css, js itp. wygląda tak:

  1. // Wcześniejszy kod
  2.  
  3. <div class="breadcrumbs_container">
  4. <article class="breadcrumbs"><a href="index.php">Panel administracyjny</a> <div class="breadcrumb_divider"></div> <a href="index.php" class="current">TUTAJ CHCĘ, ŻEBY TREŚĆ SIĘ DYNAMICZNIE ZMIENIAŁA</a></article>
  5. </div>


Mam jedną swoją teorię, która może i działa ale nie jest zbyt optymalna (dołączanie pliku ze zmienną i jej zawartością).

Mam nadzieję, że wiecie o co chodzi i mi pomożecie, pozdrawiam.
!*!
Odpowiedź już masz w kodzie. breadcrumbs
kubek3898
Tak tylko, że tam pojawia mi się adres czyli np. Panel admina -> blabla/admin/skrypt/blabla, a ja chcę: Panel admina -> Licencja
!*!
To podmień link na nazwę.
kubek3898
No ale... jak? Zmienną $_SERVER? Czy po prostu zrobić coś takiego jak:

$blabla = "Licencja";

, a w klasie:

$this->breadcrumbs .= "$blabla";

Sorry, za moją głupotę, ale klas jeszcze bardzo nie ogarniam, a bardzo mi zależy na tej liście nawigacyjnej.

Pozdrawiam.
!*!
To już zależy od Ciebie. Może to być zmienna, w końcu skądś musisz brać informacje że tu i teraz jest do pokazania licencja. Choć można zrobić to jeszcze inaczej.

  1. $breadcrumbs = null;
  2. switch($_GET['page'])
  3. {
  4. case 'strona':
  5. $breadcrumbs = 'strona';
  6. break;
  7. case 'licencja'
  8. $breadcrumbs = 'Licencja';
  9. break;
  10. }
  11. if(isset($breadcrumbs))
  12. {
  13. echo 'Panel >'.$breadcrumbs;
  14. }
kubek3898
W takim wypadku mam kolejne pytanie smile.gif. Jak przemieszczać się pomiędzy poszczególnymi stronami metodą $_GET? Bo jeśli bym to zrozumiał, to już sobie bez problemu poradził.

Żeby było bez wątpliwości o co mi chodzi:

localhost/admin/license.php - NIE
localhost/admin/index.php?page=license - TAK



!*!
Tak jak wyżej, tylko prócz okruchów dodajesz np.
  1. include_once 'strona.php';
przed break.
kubek3898
Dobra w dużej części (jakieś 3/4) uporałem się z problemem wink.gif. W zasadzie już zrobiłem tą listę nawigacyjną, oraz dodałem $_GET['page']. Teraz mam inny problem.

Część pliku admin_header.php dołączający arkusze stylów, pliki .js itp. itd oraz mający instrukcję switch() wygląda tak:

  1. <?php
  2.  
  3.  
  4. require "../core.php"; // Tym plikiem robię połączenie z bazą
  5.  
  6. $breadcrumbs = '';
  7.  
  8. switch($_GET['page'])
  9. {
  10. case 'license':
  11. {
  12. $breadcrumbs = 'Licencja';
  13. require_once "license.php";
  14. break;
  15. }
  16. }


A sam plik license.php wygląda tak:

  1. <?php
  2.  
  3. //require "admin_header.php"; // Zakomentowałem, ponieważ robię się tak jakby pętla...
  4.  
  5. $licencja_do_kiedy = 1559833422; // Taka prowizorka...
  6. $licencja = time();
  7.  
  8. ?>
  9.  
  10. <section id="main" class="column">
  11. <h4 class="alert_info">Licencja wygasa: <?php if($licencja >= $licencja_do_kiedy) echo "Licencja wygasła"; else echo date("d.m.Y, H:i", $licencja_do_kiedy) ?></h4>
  12. </section>
  13. </body>
  14. </html>


Problem w tym, że gdy kliknę napis Licencja z poziomu index.php, to faktycznie przenosi, wszystko OK, ale cały styl idzie w las i wygląda to bardzo pokracznie... Mam swoją teorię, ponieważ include() i require() w miejscu, którym są użyte wklejają tak jakby dany plik i to wszystko psuje. Czy mógłby ktoś (a raczej tylko Pan !*!, bo tylko on był chętny pomóc) podpowiedzieć co zrobić, by styl się nie rokraczał. Jeśli potrzeba zapodam wszystkie pliki skryptu.

!*!
link do stylu css ustaw w index.php, wtedy wszystko co ładujesz w nim obejmie ten styl.
kubek3898
Dzięki za odpowiedź.

Zrobiłem tak:

  1. <?php
  2.  
  3. $breadcrumbs = '';
  4.  
  5. switch($_GET['page'])
  6. {
  7. case 'index':
  8. {
  9. $breadcrumbs = 'Kokpit';
  10. //require_once "index.php";
  11. break;
  12. }
  13. case 'add_cash':
  14. {
  15. $breadcrumbs = 'Dodaj wpłatę';
  16. require_once "add_cash.php";
  17. break;
  18. }
  19. case 'edit_cash':
  20. {
  21. $breadcrumbs = 'Edytuj wpłatę';
  22. require_once "edit_cash.php";
  23. break;
  24. }
  25. case 'statistics':
  26. {
  27. $breadcrumbs = 'Statystyki';
  28. require_once "statistics.php";
  29. break;
  30. }
  31. case 'add_user':
  32. {
  33. $breadcrumbs = 'Dodaj nowego użytkownika';
  34. require_once "add_user.php";
  35. break;
  36. }
  37. case 'list_users':
  38. {
  39. $breadcrumbs = 'Lista użytkowników';
  40. require_once "list_users.php";
  41. break;
  42. }
  43. case 'profile':
  44. {
  45. $breadcrumbs = 'Twój profil';
  46. require_once "profile.php";
  47. break;
  48. }
  49. case 'settings':
  50. {
  51. $breadcrumbs = 'Ustawienia';
  52. require_once "settings.php";
  53. break;
  54. }
  55. case 'security':
  56. {
  57. $breadcrumbs = 'Bezpieczeństwo';
  58. require_once "security.php";
  59. break;
  60. }
  61. case 'license':
  62. {
  63. $breadcrumbs = 'Licencja';
  64. require_once "license.php";
  65. break;
  66. }
  67. case 'logout':
  68. {
  69. $breadcrumbs = 'Wyloguj';
  70. require_once "logout.php";
  71. break;
  72. }
  73. case 'visit':
  74. {
  75. $breadcrumbs = 'Odwiedziny';
  76. require_once "visit.php";
  77. break;
  78. }
  79. case 'settlement':
  80. {
  81. $breadcrumbs = 'Rozliczenia';
  82. require_once "settlement.php";
  83. break;
  84. }
  85. case 'logs':
  86. {
  87. $breadcrumbs = 'Logowania';
  88. require_once "logs.php";
  89. break;
  90. }
  91. }


dołączając powyższy kod na sam koniec pliku index.php.

I można powiedzieć, że prawie działa! Styl się nie rozsypuje (admin_header.php całkowicie usunąłem), lista działa. No może prawie... jak umieszczę kod na samym końcu to wtedy zmienna $breadcrumbs, nie jest odczytywana i nic się w liście nie pojawia. Jak dam na sam początek, to działa, ale styl się sypie. Teraz moje pytanie. Czy da się, zrobić tak, by zmienna $breadcrumbs przyjmowała wartość na końcu kodu, ale można ją było wywołać na początku?
!*!
index.php

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8" />
  5. <link rel='stylesheet' href='/css/style.css'/>
  6.  
  7. <?php
  8.  
  9. switch(){ //...


I nie ma się co sypać.
kubek3898
Sypie się! Sam zobacz biggrin.gif

Tak wygląda rozsypany (dodałem kod właśnie po arkuszu styli):

http://img843.imageshack.us/img843/6834/nieng.png

a tak wygląda poprawnie (lecz $breadcrumbs nie działa):

http://img716.imageshack.us/img716/7669/taks.png

!*!
Ciekawy design, co to jest za panel, jakiś gotowiec?
Pokaż jeszcze jak to dodałeś, oraz co znajduje się w tych plikach które includujesz? Może masz w nich jakiś plik css lub jakiś div nie jest domykany?
kubek3898
Gotowiec panelu administracyjnego, był czysty HTML, przerabiam go pod PHP (http://medialoot.com/item/html5-admin-template/).

Tak wygląda index.php:

  1. <?php
  2.  
  3.  
  4. require "../core.php";
  5.  
  6. ?>
  7.  
  8. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  9. <html xmlns="http://www.w3.org/1999/xhtml">
  10.  
  11. <head>
  12. <script type="text/javascript" src="../js/jquery-1.9.0.min.js"></script>
  13. <script type="text/javascript" src="../js/hideshow.js"></script>
  14. <script type="text/javascript" src="../js/jquery.tablesorter.min.js"></script>
  15. <script type="text/javascript" src="../js/jquery.equalHeight.js"></script>
  16. <script type="text/javascript">
  17. $(document).ready(function()
  18. {
  19. $(".tablesorter").tablesorter();
  20. }
  21. );
  22. $(document).ready(function() {
  23.  
  24. //When page loads...
  25. $(".tab_content").hide(); //Hide all content
  26. $("ul.tabs li:first").addClass("active").show(); //Activate first tab
  27. $(".tab_content:first").show(); //Show first tab content
  28.  
  29. //On Click Event
  30. $("ul.tabs li").click(function() {
  31.  
  32. $("ul.tabs li").removeClass("active"); //Remove any "active" class
  33. $(this).addClass("active"); //Add "active" class to selected tab
  34. $(".tab_content").hide(); //Hide all tab content
  35.  
  36. var activeTab = $(this).find("a").attr("href"); //Find the href attribute value to identify the active tab + content
  37. $(activeTab).fadeIn(); //Fade in the active ID content
  38. return false;
  39. });
  40.  
  41. });
  42. </script>
  43. <script type="text/javascript">
  44. $(function(){
  45. $('.column').equalHeight();
  46. });
  47. </script>
  48.  
  49. <link rel="shortcut icon" href="" />
  50. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  51. <meta name="description" content="ESS - Elektroniczny dziennik składek" />
  52. <meta name="keywords" content="ESS, kubek3898" />
  53. <meta name="author" content="kubek3898" />
  54. <title>ESS - Panel administracyjny</title>
  55.  
  56. <link rel="stylesheet" href="../css/style.css" type="text/css" media="screen" />
  57. <!--[if lt IE 9]>
  58. <link rel="stylesheet" href="../css/ie.css" type="text/css" media="screen" />
  59. <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
  60. <![endif]-->
  61. </head>
  62. <body>
  63.  
  64. <header id="header">
  65. <hgroup>
  66. <h1 class="site_title"><a href="index.php">ESS</a></h1>
  67. <h2 class="section_title"><?php if(isset($breadcrumbs)) echo $breadcrumbs; ?></h2><div class="btn_view_site"><a href="../index.php">Strona główna</a></div>
  68. </hgroup>
  69. </header> <!-- end of header bar -->
  70.  
  71. <section id="secondary_bar">
  72. <div class="user">
  73. <p>Admin (<a href="#">X Wiadomości</a>)</p>
  74. <!-- <a class="logout_user" href="#" title="Logout">Logout</a> -->
  75. </div>
  76. <div class="breadcrumbs_container">
  77. <article class="breadcrumbs"><a href="?page=index">Panel administracyjny</a> <div class="breadcrumb_divider"></div> <a href="?page=<?php echo $breadcrumbs; ?>" class="current"><?php if(isset($breadcrumbs)) echo $breadcrumbs; ?>
  78. </a></article>
  79. </div>
  80. </section><!-- end of secondary bar -->
  81.  
  82. <aside id="sidebar" class="column">
  83. <form class="quick_search">
  84. <input type="text" value="Szukaj" onfocus="if(!this._haschanged){this.value=''};this._haschanged=true;">
  85. </form>
  86. <hr/>
  87. <h3>System składek</h3>
  88. <ul class="toggle">
  89. <li class="icn_new_article"><a href="?page=add_cash">Dodaj wpłatę</a></li>
  90. <li class="icn_edit_article"><a href="?page=edit_cash">Edytuj / usuń wpłatę</a></li>
  91. <li class="icn_categories"><a href="?page=statistics">Statystyki wpłat</a></li>
  92. </ul>
  93. <h3>Użytkownicy</h3>
  94. <ul class="toggle">
  95. <li class="icn_add_user"><a href="?page=add_user">Dodaj nowego użytkownika</a></li>
  96. <li class="icn_view_users"><a href="?page=list_users">Lista użytkowników</a></li>
  97. <li class="icn_profile"><a href="?page=profile">Twój profil</a></li>
  98. </ul>
  99. <h3>Admin</h3>
  100. <ul class="toggle">
  101. <li class="icn_settings"><a href="?page=settings">Ustawienia</a></li>
  102. <li class="icn_security"><a href="?page=security">Bezpieczeństwo</a></li>
  103. <li class="icn_tags"><a href="?page=license">Licencja</a></li>
  104. <li class="icn_jump_back"><a href="?page=logout">Wyloguj</a></li>
  105. </ul>
  106. <h3>Statystyki i logowania</h3>
  107. <ul class="toggle">
  108. <li class="icn_photo"><a href="?page=visit">Odwiedziny</a></li>
  109. <li class="icn_folder"><a href="?page=settlement">Rozliczenia</a></li>
  110. <li class="icn_video"><a href="?page=logs">Logowania</a></li>
  111. </ul>
  112.  
  113. <footer>
  114. <hr />
  115. <p><strong>ESS - Elektroniczny dziennik składek ver. 0.0.1 &copy; kubek3898</strong></p>
  116. </footer>
  117. </aside><!-- end of sidebar -->
  118. <?php
  119.  
  120. $breadcrumbs = '';
  121.  
  122. switch($_GET['page'])
  123. {
  124. case 'index':
  125. {
  126. $breadcrumbs = 'Kokpit';
  127. //require_once "index.php";
  128. break;
  129. }
  130. case 'add_cash':
  131. {
  132. $breadcrumbs = 'Dodaj wpłatę';
  133. require_once "add_cash.php";
  134. break;
  135. }
  136. case 'edit_cash':
  137. {
  138. $breadcrumbs = 'Edytuj wpłatę';
  139. require_once "edit_cash.php";
  140. break;
  141. }
  142. case 'statistics':
  143. {
  144. $breadcrumbs = 'Statystyki';
  145. require_once "statistics.php";
  146. break;
  147. }
  148. case 'add_user':
  149. {
  150. $breadcrumbs = 'Dodaj nowego użytkownika';
  151. require_once "add_user.php";
  152. break;
  153. }
  154. case 'list_users':
  155. {
  156. $breadcrumbs = 'Lista użytkowników';
  157. require_once "list_users.php";
  158. break;
  159. }
  160. case 'profile':
  161. {
  162. $breadcrumbs = 'Twój profil';
  163. require_once "profile.php";
  164. break;
  165. }
  166. case 'settings':
  167. {
  168. $breadcrumbs = 'Ustawienia';
  169. require_once "settings.php";
  170. break;
  171. }
  172. case 'security':
  173. {
  174. $breadcrumbs = 'Bezpieczeństwo';
  175. require_once "security.php";
  176. break;
  177. }
  178. case 'license':
  179. {
  180. $breadcrumbs = 'Licencja';
  181. require_once "license.php";
  182. break;
  183. }
  184. case 'logout':
  185. {
  186. $breadcrumbs = 'Wyloguj';
  187. require_once "logout.php";
  188. break;
  189. }
  190. case 'visit':
  191. {
  192. $breadcrumbs = 'Odwiedziny';
  193. require_once "visit.php";
  194. break;
  195. }
  196. case 'settlement':
  197. {
  198. $breadcrumbs = 'Rozliczenia';
  199. require_once "settlement.php";
  200. break;
  201. }
  202. case 'logs':
  203. {
  204. $breadcrumbs = 'Logowania';
  205. require_once "logs.php";
  206. break;
  207. }
  208. }
  209.  
  210. ?>


Tak wygląda core.php

  1. <?php
  2.  
  3.  
  4. require_once "config.php"; // Wiem nie opłaca się dla włączania 1 pliku, ale później tutaj będzie dalszy kod...
  5.  
  6. ?>


oraz config.php

  1. <?php
  2.  
  3. $db['host'] = '127.0.0.1';
  4. $db['user'] = 'root';
  5. $db['pass'] = '';
  6. $db['select'] = 'test';
  7.  
  8. $db['connect'] = mysql_connect($db['host'], $db['user'], $db['pass'])
  9. or die('Połączenie z bazą danych nie powiodło się. Sprawdź plik <strong>config.cfg</strong>');
  10.  
  11. mysql_select_db($db['select'], $db['connect'])
  12. or die('Wybór bazy danych nie powiódł się. Sprawdź plik <strong>config.cfg</strong>');
  13.  
  14. @mysql_query("SET NAMES utf8", $db['connect']);
  15. @mysql_query("SET CHARACTER SET utf8", $db['connect']);
  16. @mysql_query("SET collation_connection = utf8_general_ci", $db['connect']);
  17. @mysql_query("set character_set_connection=utf8", $db['connect']);
  18. @mysql_query("set character_set_client=utf8", $db['connect']);
  19. @mysql_query("set character_set_database=utf8", $db['connect']);
  20. @mysql_query("set character_set_results=utf8", $db['connect']);
  21. @mysql_query("set character_set_server=utf8", $db['connect']);
  22. @mysql_query("set collation_database=utf8_general_ci", $db['connect']);
  23. @mysql_query("set collation_server=utf8_general_ci", $db['connect']);
  24.  
  25. ?>


No i przykładowy plik logs.php:

  1. <?php
  2. /*
  3. $row = mysql_fetch_assoc(mysql_query("SELECT * FROM logs", $db['connect']));
  4.  
  5. $_SESSION['id'] = $row['id'];
  6. $_SESSION['ip'] = $row['ip'];
  7. $_SESSION['login'] = $row['login'];
  8. $_SESSION['data'] = date("d.m.Y, H:i", $row['data']);
  9. $_SESSION['udane'] = $row['udane'];
  10. */
  11. ?>
  12.  
  13. <section id="main" class="column">
  14.  
  15. <h4 class="alert_info">Poniżej znajdują się logi panelu administracyjnego, rejestrujące każdą akcję administracyjną.</h4>
  16.  
  17. <article class="module width_full">
  18. </article>
  19. <div class="clear"></div>
  20. </div>
  21. </article><!-- end of stats article -->
  22.  
  23. <article class="module width_3_quarter">
  24. <header><h3 class="tabs_involved">Logowania</h3>
  25. </header>
  26.  
  27. <div class="tab_container">
  28. <div id="tab1" class="tab_content">
  29. <table class="tablesorter" cellspacing="0">
  30. <thead>
  31. <tr>
  32. <th>ID</th>
  33. <th>IP</th>
  34. <th>Login</th>
  35. <th>Data</th>
  36. <th>Udane</th>
  37. <th>Akcje</th>
  38. </tr>
  39. </thead>
  40. <tbody>
  41. <tr>
  42. <td><?php echo $_SESSION['id'] ?></td>
  43. <td><?php echo $_SESSION['ip'] ?></td>
  44. <td><?php echo $_SESSION['login'] ?></td>
  45. <td><?php echo $_SESSION['data']; ?></td>
  46. <td><?php echo $_SESSION['udane'] ?></td>
  47. <td><input type="image" src="../images/icn_edit.png" title="Edit"><input type="image" src="../images/icn_trash.png" title="Trash"></td>
  48. </tr>
  49. </tbody>
  50. </table>
  51. </div><!-- end of #tab1 -->
  52. </div><!-- end of .tab_container -->
  53. </article><!-- end of content manager article -->




@refresh...

Proszę o pomoc, utknąłem w tym miejscu ;D
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-2024 Invision Power Services, Inc.