Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]strona w stronie
Forum PHP.pl > Forum > Przedszkole
hidden
Witam
Zielony jestem. To na początek. Używam php tylko w zakresie include (w wąskim zakresie) i to do tej pory wystarczało.
Wymyśliłem jednak sobie, że z menu wywołam stronę, w której będzie oddzielne menu. Chciałbym, żeby było całkowicie autonomiczne, czyli po kliknięciu linka, żeby wyświetlał zaciągniętą treść w podstronie wyświetlanej w stronie.
Dokładniej:
index.php posiada blok do wyświetlania treści wywoływanej z menu głównego. Zaciągam stronę z innym menu, które wyświetla swoje linki w bloku wywołanej treści.
Pomożecie?
sadistic_son
A oprócz "pomożecie?" to jakie jest pytanie?
Gość
Hmmm... Chciałem spytać jak to osiągnąć?
Normalnie wyświetlam treści wywoływane z menu za pomocą funkcji "switch" wykorzystując case itd., ale jak zrobić, żeby menu wyświetlane w wywołanej treści działało tylko w stosunku do tej treści właśnie?
Kiedy ustawiam case'y w wywoływanej treści, otwierają mi nowe pliki pomijając zawartość pliku index.php, a chciałbym, żeby ten pozostał niezmienny.
Najprościej: tak jak było w ramkach. W jednej ramce wyświetlało się wszystko i można było wywołać w niej kolejne ramki, w których można było zawrzeć menu i efekty zaciągać w dowolnym miejscu, bez wychodzenia z pliku index.
Już tak zakręciłem, że sam się zaczynam gubić smile.gif
mortus
Załóżmy, że mamy taki sobie plik index.php:
  1. <!-- górne menu -->
  2. <ul id="top_menu"><li><a href="index.php?strona=1">Strona 1</a></li><li><a href="index.php?strona=2">Strona 2</a></li></ul>
  3. <?php
  4. if(isset($_GET['strona']) && $_GET['strona'] != '') {
  5. $strona = $_GET['strona'];
  6. // w zależności od wartości zmiennej $strona wstawiamy (include) odpowiednią treść
  7. switch($strona) {
  8. case '1':
  9. include '1.php'; // wstawiamy stronę 1, na której jest podmenu
  10. break;
  11. case '2':
  12. include '2.php'; // i stronę 2, na której podmenu nie ma
  13. break;
  14. default:
  15. include '1.php';
  16. }
  17. }

Plik 1.php wyglądałby natomiast tak:
  1. <!-- załóżmy, że na "Strona 1" znajduje się podmenu (ono również zostało wstawione poprzez include) -->
  2. <!-- menu strony -->
  3. <ul id="page_menu"><li><a href="index.php?strona=1&podstrona=1">Podstrona 1 strony 1</a></li><li><a href="index.php?strona=1&podstrona=2">Podstrona 2 strony 1</a></li></ul>
  4. <?php
  5. echo 'Jesteś na stronie '.$strona.'<br/>';
  6. if(isset($_GET['podstrona']) && $_GET['podstrona'] != '') {
  7. $podstrona = $_GET['podstrona'];
  8. switch($podstrona) {
  9. case '1.1':
  10. include '1.1.php';
  11. break;
  12. case '1.2':
  13. include '1.2.php';
  14. break;
  15. default:
  16. include '1.1.php';
  17. }
Ogólnie chodzi o to, że pliki, które includujesz mają dostęp do tablic superglobalnych (jak $_GET), jak również do zmiennych, które zostały zadeklarowane przed wywołaniem include (tutaj zmienna $strona). Przedstawiony wyżej schemat sprawdzi się w przypadku kilku stron i podstron, ale przy bardziej rozbudowanych portalach nie ma prawa bytu.
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-2025 Invision Power Services, Inc.