Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Zmiana zawartości dwóch div-ów jednym kliknięciem.
s340
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 28.01.2011

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


Od rana szukam i albo nie ma, albo zmęczenie nie pozwala mi znaleźć rozwiązania: jak za pomocą jednego kliknięcia w menu i funkcji "include" zmienić zawartość dwóch divów na stronie?

dzięki i pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
pedro84
post
Post #2





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

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


Bez przeładowania strony? AJAXem


--------------------
Google knows the answer...
Go to the top of the page
+Quote Post
s340
post
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 28.01.2011

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


A bez AJAX-a?
W PHP dopiero raczkuję a samo słowo AJAX brzmi dla mnie na tyle egzotycznie, że wiem na pewno, że sobie nie poradzę a gotowe rozwiązanie ciężko będzie znaleźć smile.gif
Go to the top of the page
+Quote Post
pedro84
post
Post #4





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

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


Zapewne chcesz podstrony zrobić? Użyj forumowej szukajki - jest kilka dobrych tematów jak to możesz zrobić.

Przyda Ci się: switch(), $_GET.


--------------------
Google knows the answer...
Go to the top of the page
+Quote Post
s340
post
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 28.01.2011

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


Dzięki za pomoc, poczytałem o "switch", jednak moja znajomość PHP jest bardziej intuicyjna smile.gif
Wykombinowałem cuś takiego jak na poniższym przykładzie. Kliknięcie w menu powoduje załadowanie do div-a "kolumna" jednej stronki a do div-a "srodek" innej stronki.

Czy fakt, że działa toto w pięciu przeglądarkach wystarczy, żeby uznać to za poprawne? Czy jednak muszę coś zmienić?

  1. <body>
  2. <!-- poczatek kontenera -->
  3. <div id="kontener">
  4.  
  5. <!-- poczatek menu -->
  6. <div id="menu">
  7. <li><a href="index.php?id=firma">FIRMA</a></li>
  8. <li><a href="index.php?id=galeria">GALERIA</a></li>
  9. <li><a href="index.php?id=kontakt">KONTAKT</a></li>
  10. </div>
  11. <!-- koniec menu -->
  12.  
  13. <!-- początek lewej kolumny -->
  14. <div id="kolumna">
  15. <?php
  16. if(empty($_GET['id']) or $_GET['id']=="firma"){
  17. include("o_firma.php");
  18. }
  19. ?>
  20. <?php
  21. if($_GET['id']=="galeria"){
  22. include("o_galeria.php");
  23. }
  24. ?>
  25. <?php
  26. if($_GET['id']=="kontakt"){
  27. include("o_kontakt.php");
  28. }
  29. ?>
  30. </div>
  31. <!-- koniec lewej kolumny -->
  32.  
  33. <!--początek prawej kolumny -->
  34. <div id="strona">
  35. <?php
  36. if(empty($_GET['id']) or $_GET['id']=="firma"){
  37. include("firma.php");
  38. }
  39. ?>
  40. <?php
  41. if($_GET['id']=="galeria"){
  42. include("galeria.php");
  43. }
  44. ?>
  45. <?php
  46. if($_GET['id']=="kontakt"){
  47. include("kontakt.php");
  48. }
  49. ?>
  50. </div>
  51. <!-- koniec prawej kolumny -->
  52.  
  53. <!-- poczatek stopki -->
  54. <div id="stopka"></div>
  55. <!-- koniec stopki -->
  56.  
  57. </div>
  58. <!-- koniec kontenera -->
  59.  
  60. </body>


Dzięki i pozdrawiam:)
Go to the top of the page
+Quote Post
Daiquiri
post
Post #6





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Pytasz o kod html czy php? Skorzystałabym mimo wszystko z rady pedro84 i switch. Sprawa jest prosta, robisz coś na zasadzie:
  1. switch ($_GET['id']) { // korzystamy z $_GET['id'] bo to zmienna informuje o tym, co wybraliśmy
  2. case "galeria":
  3. // tutaj robisz co chcesz, gdy użytkownik kliknie w link "galeria", np.
  4. include('galeria.php');
  5. break;
  6. case "kontakt":
  7. // analogicznie do "galeria"
  8. break;
  9. }
Możesz też skorzystać z parametru "default", którego to piękny opis znajdziesz w manualu smile.gif.


@s340 - co to jest intuicyjna znajomość PHP? smile.gif
Go to the top of the page
+Quote Post
s340
post
Post #7





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 28.01.2011

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


Cytat(Daiquiri @ 31.01.2011, 11:18:36 ) *
@s340 - co to jest intuicyjna znajomość PHP? smile.gif


Jestem grafikiem, ale staram się własnoręcznie tworzyć kompletne strony tzn. i grafikę i kod! Dawno temu wystarczał mi do tego wyłącznie html ale szybko się przekonałem, że przy bardziej rozbudowanych stronach powielanie stopek, nagłówków a zwłaszcza menu niepotrzebnie komplikuje i powiększa strony utrudniając przy tym jakiekolwiek zmiany. Z pomocą przyszła mi funkcja "include" w PHP. Zobaczyłem gdzieś przykład, mniej więcej zrozumiałem działanie i używam.
Okazuje się, że przez lata mi to wystarczało smile.gif
W powyższym przypadku posłużyłem się intuicją właśnie - jeżeli kliknięcie w menu w:
  1. <a href="index.php?id=galeria">GALERIA</a>

w div-e w którym została umieszczona funkcja:
  1. if($_GET['id']=="galeria"){
  2. include("galeria.php");
  3. }

powoduje wstawienie tam strony "galeria.php" to pomyślałem, że wystarczy w innym div-ie wstawić taką samą funkcję jedynie wywołującą inną stronę! Okazuje się - działa i mniej więcej rozumiem działanie tego "tworu".
Jedni mówią na to intuicja, inni kombinowanie smile.gif
Przyznam się natomiast, że moja nikła znajomość PHP powoduje, iż Twojej porady nie rozumiem zupełnie - nie wiedziałbym gdzie wpisać to co mi podałeś - domyślam się, że pewnie w jednym z div-ów, ale w którym nie wiem, a co wpisać w drugim - tym bardziej.
Byłbym wdzięczny za podpowiedź czy mogę używać tej funkcji w postaci jak podałem, a jeżeli nie to dlaczego?

Dzięki i pozdrawiam.
Go to the top of the page
+Quote Post
Daiquiri
post
Post #8





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Po prostu switch jest mechanizmem, działającym w określony sposób - w Twoim przypadku, nie widzę powodu dla którego lepiej pisać za każdym razem warunek. Na forum był już wątek o tym, możesz poczytać. Co do działania switcha... nie kombinuj. To jest takie, jak widzisz w pseudokodzie:
  1. switch($ID) // informacja, że dla wartości tej zmiennej będziemy rozpatrywać następujące przypadki:
  2. case "galeria": // jeżeli zmienna $ID ma wartość "galeria", w Twoim przypadku jeżeli ktoś ustawił tę wartość klikając w link index.php?ID=galeria
  3. // tutaj wstawiasz to, co ma się wykonać, jeżeli użytkownik kliknął w galerię, np.
  4. include('galeria.php');
  5. break; // kończymy ten przypadek
  6. case "kontakt": // przypadek w którym $ID = "kontakt"
  7. // tutaj wstawiasz to, co ma się wykonać, jeżeli użytkownik kliknął w kontakt, np.
  8. echo "kliknąłeś w kontakt";
  9. break; // kończymy ten przypadek
  10. // itd.


PS. Żartowałam z tą intuicyjnością. Dla mnie albo ktoś "ogarnia" PHP, albo nie - reszta to, wspomniane przez Ciebie, kombinowanie smile.gif.
Go to the top of the page
+Quote Post
s340
post
Post #9





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 28.01.2011

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


Cytat(Daiquiri @ 31.01.2011, 12:16:02 ) *
nie widzę powodu dla którego lepiej pisać za każdym razem warunek.

OK. Nareszcie ja paniał switch-a smile.gif
Dzięki.
Go to the top of the page
+Quote Post
fiszol
post
Post #10





Grupa: Zarejestrowani
Postów: 452
Pomógł: 16
Dołączył: 25.05.2004
Skąd: Gorzów Wlkp.

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


fajnie jeszcze w switchu określić defaulta na wypadek gdyby komuś przyszło do głowy dopisać coś w pasku adresu (a na tym forum aż roi się od "dopisywaczy":) )

  1. default:
  2. echo "404 :-("; // albo jakiś redirect czy strona błędu
  3. break;


Ten post edytował fiszol 3.02.2011, 09:46:36


--------------------
\o/
Go to the top of the page
+Quote Post
s340
post
Post #11





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 28.01.2011

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


Cytat(fiszol @ 3.02.2011, 09:45:20 ) *
fajnie jeszcze w switchu określić defaulta na wypadek gdyby komuś przyszło do głowy dopisać coś w pasku adresu (a na tym forum aż roi się od "dopisywaczy":) )

Z dumą mogę napisać, że doszedłem do tego sam smile.gif
Tzn. wiedziałem tyle, że musi być taka opcja - w mojej poprzedniej wersji kodu była funkcja: "if(empty...." choć po niewczasie domyślam się, że to trochę mało i na dopisywanie głupot w pasku adresu pewnie by nie pomglo.

A co do dopisywania to ja jestem za. Spodziewałem się, że jeżeli pada pytanie w "Przedszkolu" (podtytuł: Raczkujesz w tematyce WWW....) to odpowiedź będzie raczej "łopatologiczna" smile.gif Aż się boję zajrzeć na dział "PHP". Tam pewnie nie będę w stanie zrozumieć pytań a odpowiedzi to mi co najwyżej dadzą... ból głowy smile.gif

pozdrawiam ohmy.gif)

PS. Byłbym ostatnim niewdzięcznikiem gdybym nie docenił odpowiedzi jakie tu spotykam, a lakoniczność niektórych zmusza mnie do głębszego "pogrzebania" i pomaga problem zrozumieć lepiej. Niemniej jednak na naukę to ja już za stary jestem i czasem wolałbym dostać coś "na tacy" smile.gif
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 Aktualny czas: 21.08.2025 - 04:18