Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Podstrony w PHP
Forum PHP.pl > Forum > Przedszkole
xorttechnik
Witam
Nie potrafię sobie poradzić z wykonaniem odnośników do następujących po sobie kilku podstron.

Skrótowo chcę, aby strona składała się z :
1. Header - nagłówek z menu głównym; jeden niezmienny dla strony głównej i wszystkich podstron
2. Maincontainer - główny "zbiornik" z treścią którego zawartość zależy od tego co wybierzemy w menu głównym
3. Footer - stopka; jedna niezmienna dla strony głównej i wszystkich podstron

Dla jednej pozycji z menu głównego np. "Galeria" chciałbym, aby Maincontainer został podzielony na:
a) Sidebar - panel z dodatkowym menu
cool.gif Container - przestrzeń w której pojawiać się będzie treść wybrana w menu z przestrzeni Sidebar

Problem:
Po zaimplementowaniu w poszczególne przestrzenie w div kodów z odnośnikami (w php) strona pracuje w sposób:
Uruchamiam stronę główną (Jest OK.) => Uruchamiam odnośnik "Galeria" (Jest OK - rozwija się panel bocznego menu) => Uruchamiam odnośnik "Wakacje" (Jest ŹLE - pole z Header i menu głównym pozostaje bez zmian, natomiast znika mi panel z Sidebar i menu dodatkowym, i nic się nie pojawia.
Domyślam się że problem leży w tym że po wczytaniu do pliku index.php pierwszej podstrony z zawartością galeria.php nie zostaje to zapamiętane i jest on zastępowany przez dołączony w dalszej kolejności kod zawarty w wakacje.php.
Niestety nigdzie nie potrafię znaleźć odpowiedzi jak należy to uruchomić.

Mój obecny kod wygląda następująco:


1. Plik index.php


CODE

<html>
<head>
</head>

<body>

<div id="mainmenu">
<div id="main">
<ul>
<li class="main-left"><a href="index.php?main=1">Galeria</a></li>
<li class="main-center"><a href="index.php?main=2">Opcja 2</a></li>
<li class="main-center"><a href="index.php?main=3">Opcja 3</a></li>
<li class="main-right"><a href="index.php?main=4">Opcja 4</a></li>
</ul>
</div>
</div>

<div id="maincontainer">


<?php
switch($_GET['main'])
{
case '1':
include('galeria.php');


} ?>

</div>

<div id="footer">
<li><a>TEXT 1</a></li>
</div>
</body>


1. Plik galeria.php

CODE

<div id="sidebar">
<ul>
<li><a href="index.php?main=2?sidebar=1">Wakacje</a></li>
<li><a>Wybór 2</a></li>
<li><a>Wybór 3</a></li>

</ul>
</div>

<div id="container">
<?php
switch($_GET['sidebar'])
{
case '1':
include('wakacje.php');
break;

} ?>

</div>


1. Plik wakacje.php

CODE

<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>



Obecnie we wszystkich poleceniach posłużyłem się formą
CODE

<?php
switch($_GET[''])
{ case '1': include('.php'); break; } ?>


, gdyż z tego co udało mi się wyczytać jest to bezpieczna forma wykonywania odnośników a dla mnie nie jest problemem dorzucenie kilku linijek kodu w przypadku pojawienia się dodatkowych pozycji w menu.
W dalszej kolejności w przypadku gdy na ostatnich podstronach z właściwą treścią będą dodawane np. zdjęcia których ilość może już być duża chciałbym zaimplementować kod w innej formie gdyż to już może być uciążliwe jednakże na tą chwilę w pierwszej kolejności chciałbym rozwiązać problem prawidłowej pracy głównego szkieletu strony.

Z góry dziękuję za wszelką pomoc i informacje co robię źle. Proszę również o wyrozumiałość gdyż jest to dopiero mój początek przygody ze stronami.
daniel1302
1. Poszukaj informacji o szablonach(Smarty, lub OPT) albo napisz coś swojego, żeby oddzielić kod HTML od PHP.

2. Ja zawsze robie to tak:
header.php
Cytat
<html><head><title><?php echo $pageTitle; ?></title>...</head><body>

footer.php
Cytat
</body></html>


No i podstrony
index.php
Cytat
<?php $pageTitle = 'Strona główna'; require_once 'header.php'; TRESCSTRONY require_once 'footer.php';

gallery.php
Cytat
<?php $pageTitle = 'Galeria'; require_once 'header.php'; TRESCSTRONY require_once 'footer.php';
]


W headerze robisz sobie podtrzymanie sesji, itp.

Zobacz sobie jak to jest w tym projekcie zrobione, nie moj ale znajomego.

http://bazaar.launchpad.net/~thindil/vallh...vallheru2/files
l3hash
Zapoznaj się z wzorcem MVC, bo przykład który podał kolega wyżej jest słaby.
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.