Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][CSS][PHP]ukrywanie div - ów
Maciek1705
post 1.09.2009, 18:36:33
Post #1





Grupa: Zarejestrowani
Postów: 157
Pomógł: 3
Dołączył: 15.06.2009

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


Witam serdecznie forumowicze mam małe pytanie i prośbę o pomoc w pewnym problemie. Mam taki kod:

  1. <div id='menu'>
  2. <li class='li_menu'><a>Pokoje</a>
  3. <ul class='menu'>
  4. <li id='P1'>P1</li>
  5. <li id='P2'>P2</li>
  6. <li id='P2'>P2</li>
  7. <li id='P4'>P4</li>
  8. </ul>
  9. </li>
  10. </div>
  11.  
  12. <div id='0'>
  13. opis itp.
  14. </div>
  15.  
  16. <div id='1'>
  17. treść 1 diva
  18. </div>
  19.  
  20. <div id='2'>
  21. treść 2 diva
  22. </div>
  23.  
  24. <div id='3'>
  25. treść 3 diva
  26. </div>
  27.  
  28. <div id='4'>
  29. treść 4 diva
  30. </div>
  31.  
  32. ");


Chciałem uzyskać taki efekt żeby na jednej stronie było kilka divóv ale tylko 1 widoczny, tz Przy ładowaniu strony ma być zawsze widoczny div z id=0 reszta ma być ukryta, lecz np jeśli z listy wyboru kliknę na P1 to chce żeby div o id=0 się ukrył a był aktywny div z id=1 i tak samo dla pozostałych P2, P3 P4 żeby odpowiednio się pokazywały div2, div3, div4. Wszystkie przykłady jakie widziałem były do htmla nie spotkałem się z przykładem do php. Jeśli ktoś potrafi napisać prostą funkcję co by to robiła to proszę o pomoc bo sam nie mogę tego ogarnąć

Ten post edytował Maciek1705 1.09.2009, 18:45:17
Go to the top of the page
+Quote Post
wookieb
post 1.09.2009, 18:47:51
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Bo tego w php się nie robi tylko w javascript. Jest sporo takich skryptów. jquery tabs m.in (jak sobie lekko dopasujesz)

Ten post edytował wookieb 1.09.2009, 18:48:19


--------------------
Go to the top of the page
+Quote Post
Maciek1705
post 1.09.2009, 19:45:19
Post #3





Grupa: Zarejestrowani
Postów: 157
Pomógł: 3
Dołączył: 15.06.2009

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


Masz rację to trzeba zrobić w java script patrzyłem na jquerry co mi podałeś ale to za wysokie progi faktycznie efekt jest niezły płynny itp, ale poziom trudności jest spory. Widziałem kiedyś na przykładzie htmla jak to się robiło za pomocą css i atrybutami display to była prosta funkcja z 8 linijek w java script ale byłe głupi i to wrzuciłem bo mógłbym teraz wrzucić i pokazać co i jak
Go to the top of the page
+Quote Post
Void
post 1.09.2009, 20:03:18
Post #4





Grupa: Zarejestrowani
Postów: 112
Pomógł: 15
Dołączył: 2.02.2007

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


Napisz sobie funkcję js przyjmującą jako parametr ID diva, który ma zostać wyświetlony. Następnie przeleć pętlą po wszystkich pozostałych divach (tu przydałoby się np. przechowywać w jakiejś zmiennej "n" ile jest tych divów i pętlą for iterować od 0 do n-1), aby sprawdzić który ma ustawioną właściwość display na "block" i ustawić ją na "none" (Document.getElementById(n).display='none'). A diva, którego id podano w argumencie funkcji pokazujesz po prostu za pomocą getElementById i ustawiasz display na block.
Go to the top of the page
+Quote Post
Skie
post 1.09.2009, 20:06:26
Post #5





Grupa: Zarejestrowani
Postów: 555
Pomógł: 84
Dołączył: 20.02.2008
Skąd: Małopolska

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


ukrywanie elementu za pomocą atrybutów CSS:

Niewidoczny:
Kod
document.getElementById(jakies_id).style.display = "none";


Widoczny
Kod
document.getElementById(jakies_id).style.display = "block"; // ew. inline



--------------------
Wieloprocesowość i wielowątkowość w PHP, poznaj Kraken PHP!
Serwer HTTP i WebSocket w PHP | Promise/A+
Strona Domowa | Elradia MMORPG
FireFox: make the web better.
Go to the top of the page
+Quote Post
kefirek
post 2.09.2009, 08:13:28
Post #6





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


  1. <html>
  2. <head>
  3. <script src="http://code.jquery.com/jquery-latest.js"></script>
  4. <script>
  5. $(document).ready(function() {
  6. $('#start').show('normal');
  7. $('.toggle').click(function(){
  8. $('.toggle').hide();
  9. $(this).next('div').show();
  10. });
  11. });
  12. </script>
  13. </head>
  14. <body>
  15. <?php
  16. echo "<div id='start' class='toggle' style='display:none'>test</div>
  17. <div class='toggle' style='display:none'>test1</div>
  18. <div class='toggle' style='display:none'>test2</div>
  19. <div class='toggle' style='display:none'>test3</div>";
  20. ?>
  21. </body>
  22. </html>
Go to the top of the page
+Quote Post
Maciek1705
post 2.09.2009, 12:18:31
Post #7





Grupa: Zarejestrowani
Postów: 157
Pomógł: 3
Dołączył: 15.06.2009

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


nie uwierzcie znalazłem przykład o którym pisałem już go wrzucam:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html>
  2. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
  3. <title> [tytuł strony] </title>
  4.  
  5. <script type="text/javascript">
  6. function pokaz(el) {
  7. var i=1
  8. for(var i=1; i<8; i++) {
  9. document.getElementById('div'+i).style.display = "none";
  10. }
  11. document.getElementById(el).style.display = "block";
  12. }
  13. </script>
  14.  
  15.  
  16. <style type="text/css">
  17. #div1 {
  18. margin-top: 20px;
  19. margin-left:20px;
  20. width: 500px;
  21. height: 500px;
  22. background-color: red;
  23. float:left;
  24. display: block;
  25. }
  26.  
  27. #div2,#div3,#div4,#div5,#div6,#div7 {
  28. margin-top: 20px;
  29. margin-left:20px;
  30. width: 500px;
  31. height: 500px;
  32. background-color: green;
  33. float:left;
  34. display: none;
  35. }
  36. </style>
  37.  
  38. </head>
  39.  
  40. <div id="div1">Main
  41. </div>
  42. <div id="div2">Logowanie
  43. </div>
  44. <div id="div3">Rejestracja
  45. </div>
  46. <div id="div4">FAQ
  47. </div>
  48. <div id="div5">Regulamin
  49. </div>
  50. <div id="div6">Autor
  51. </div>
  52. <div id="div7">Polecamy
  53. </div>
  54.  
  55. <div id="menu">
  56. <a onclick="pokaz('div1')">Strona główna</a><br />
  57. <a onclick="pokaz('div2')">Logowanie</a><br />
  58. <a onclick="pokaz('div3')">Rejestracja</a><br />
  59. <a onclick="pokaz('div4')">FAQ</a><br />
  60. <a onclick="pokaz('div5')">Regulamin</a><br />
  61. <a onclick="pokaz('div6')">Autor</a><br />
  62. <a onclick="pokaz('div7')">Polecamy</a><br />
  63. </div>
  64.  
  65. </body>
  66. </html>


Właśnie o to mi chodzi o takie coś tylko żeby to było w php a jak przerabiam dokument na php to problem pojawia się na "div id=menu" tam są zdarzenia onclick i mają najpierw cudzysłów " " a później apostrofy ' ' i jak ja tam daje print lub echo to pojawia się tam zgrzyt bo onclick bez cudzysłowu nie zadziała a z cudzysłowem jest błąd bo koliduje z echo lub printem i w właśnie dlatego chciałem się zapytać jak to rozkminić żeby poszło
Go to the top of the page
+Quote Post
jasin
post 2.09.2009, 12:37:16
Post #8





Grupa: Zarejestrowani
Postów: 142
Pomógł: 32
Dołączył: 21.08.2008
Skąd: Toruń

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


A próbowałeś dać np:
  1. $html = '<a onclick="pokaz(\'div1\')">Strona główna</a><br />';
  2. echo $html;

lub jesli wolisz używać "":
  1. $html = "<a onclick=\"pokaz('div1')\">Strona główna</a><br />";



Ten post edytował jasin 2.09.2009, 12:42:02


--------------------
Go to the top of the page
+Quote Post
Maciek1705
post 2.09.2009, 17:20:39
Post #9





Grupa: Zarejestrowani
Postów: 157
Pomógł: 3
Dołączył: 15.06.2009

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


dzięki jasin zadziałało jeszcze raz wielkie dzięki:-)
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: 18.07.2025 - 15:27