Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Include if
Forum PHP.pl > Forum > Przedszkole
plejaz
Witam mam problem jak zrobić coś takiego:
Strona główna wygląda w ten sposób:
góra.php
lewo.php
środek.php
stopka.php
Wszystko jest includowane, problem mój polega na tym, że jak wczytuje w środek.php np. stronę info.html to chciałbym, żeby zmieniała mi się zawartość lewo.php. To znaczy, że w pliku lewo.php chciałbym includować kilka innych plików w zależności od tego jaką podstronę wybiorę.
bastard13
Możesz zrobić coś takiego;
index.php
  1. <?php
  2. include('gora.php');
  3.  
  4. $page=array(
  5. 'typ1' => array('lewo1','glowna1'),
  6. 'typ2' => array('lewo2','glowna2'),
  7. 'typ3' => array('lewo3','glowna3')
  8. )
  9. if(array_key_exists($_typ,$page))
  10. {
  11. include($page[$_typ][0].'.php');
  12. include($page[$_typ][1].'.php');
  13. }
  14.  
  15. include('stopka.php');
  16. ?>
,
gdzie $_typ, to zmienna określająca jakie strony chcesz includować. Klucze tablicy page to nazwy typów stron, a jej wartość to tablica, gdzie pierwsza wartość to nazwa pliku, który ma być dołączony po lewej stronie, a druga wartość określa jaka strona ma zostać wczytana w środku.
plejaz
  1. <?php
  2. include('gora.php');
  3.  
  4. $page=array(
  5. 'typ1' => array('informacje','klient'),
  6. 'typ2' => array('onas','firma'),
  7. )
  8. if(array_key_exists($_typ,$page))
  9. {
  10. include($page[$_typ][0].'.php');
  11. include($page[$_typ][1].'.php');
  12. }
  13.  
  14. include('stopka.php');
  15. ?>

Wywala mi blad Parse error: syntax error, unexpected T_IF
Kamil Pietrzak
to znajdz blad;p moze jakas literowka.

Ogolnie, to musisz miec gdzies zapisane jakie lewo, do jakiej podstrony. Np. w pliku(jak podal bastard13 - w tablicy, lub w bazie danych.

nie wiem jak wczytujesz podstrony, co masz w adresie, ale np. tak:

twojastrona.pl/?site=info

lewo.php:
if($_GET['site'] == 'info')
{
include('menu/info1.php);
include('menu/info2.php);
}
elseif($_GET['site'] == 'kontakt')
{
include('menu/kontakt.php);
}

srodek.php:
if($_GET['site'] == 'info')
{
include('srodki/info.php);
}
elseif($_GET['site'] == 'kontakt')
{
include('srodki/kontakt.php);
}

to najprostrzy sposob
Jak uda Ci sie to zrobic, to sprobuj sobie to udoskonalic i zarzadac tym z bazy danych

EDIT: w moim skrypcie sa literowki - jak masz programistyczny edytor tekstu, to od razu zobaczysz gdzie
plejaz
index.php wyglada tak:
  1. <?php
  2. $go = $_GET['strona'];
  3. if(!empty($go)) {
  4. if(is_file("podstrony/$strona.html")) include "podstrony/$strona.html";
  5. else echo "Wyszukiwana strona nie istnieje!";
  6. }
  7. else include "podstrony/glowna.html";
  8.  
  9. ?>
Kamil Pietrzak
Ale w czym problem? niewazne jak wyglada index, mozesz wykorzystac moj przyklad.

tak jak podstrona jest zalezna od $_GET['strona'], tak samo menu po lewej moze byc od tego zalezne.
plejaz
Spoko wszystko śmiga, ale zajęło mi to sporo czasu, a tak na marginesie jaką książkę polecacie by zacząć stawiać pierwsze kroki z php?
update
Jednak coś popsułem :/
zawartość index.php:
  1. <?php
  2. // zmienna $go przekazana metoda GET
  3. $go = $_GET['strona'];
  4.  
  5. // sprawdzamy czy zmienna $go nie jest pusta
  6. if(!empty($go)) {
  7. // sprawdzamy czy plik o danej nazwie istnieje
  8. if(is_file("podstrony/srodek/$strona.html")) include "podstrony/srodek/$strona.html";
  9. elseif(is_file("podstrony/srodek/$strona.php")) include "podstrony/srodek/$strona.php";
  10. // jezeli plik nie istnieje wyswietla si? komunikat
  11. else echo "Wyszukiwana strona nie istnieje!";
  12. }
  13. // jezeli zmienna $go jest pusta wyswietla si? strona glowna
  14. else include "podstrony/srodek/glowna.html";
  15.  
  16. ?>

Po wybraniu z menu KATALOG ktory ma rozszerzenie w php wyskakuje, ze strony nie znaleziono. Tak samo dzieje sie z reszta podstron ktore sa zapisane w html.
Dodam, że na localhoscie na Webserverze wszystko działa, a jak wyślę stronę na serwer ftp to nie.
update2
nie mam pojecia jak to zrobic, probowalem roznych sposob, a teraz to mi nie wyswietla zadnej z wczytanych stron na serwerze ftp.
plik menulewo.php
  1. <div id="nawigacja">
  2. <ul>
  3. <li><a href="index.php?strona=start">Strona główna</a></li>
  4. <li><a href="index.php?strona=klient">Informacje dla klientów</a></li>
  5. <li><a href="index.php?strona=kontakt">Kontakt</a></li>
  6. </ul>
  7. </div>

update3
Poradziłem sobie na około przez przez $_GET wszystko zrobiłem na początek mi wystarczy, jak się podszkolę to postaram się to zrobić bardziej zaawansowanie. Pozdrawiam i dziękuje za pomoc. Temat do zamknięcia
Kamil Pietrzak
Cytat(plejaz @ 16.10.2010, 14:50:14 ) *
a tak na marginesie jaką książkę polecacie by zacząć stawiać pierwsze kroki z php?


http://webmade.org/ - najlepszy kurs w sieci
i wikibooks < bardzo ciekawy projekt i ladnie sie rozwija

do tego trzeba pisac, aby nabrac wprawy, potem juz latwo sie przyswaja nowe informacje
plejaz
EDIT
Witam napotkałem kolejny problem, po skorzystaniu z serwisu IE NETRENDER zauważyłem, że moja strona nie wyświetla tła na którym znajduje się tekst przez co całość jest nieczytelna.
Powinno być coś takiego:
Zamiast tego wyświetla mi tylko niebieskie tło, część kodu która odpowiada za to w css:
  1. #tresc_zew {
  2. background : url(../grafika/zawartosc.png) repeat-y;
  3. }

Pod innymi przeglądarkami śmiga super błąd pojawia się tylko na IE 7 i niższych bo w wersji 8 wyświetla poprawnie. Sprawdzałem kod walidatorami i nie wywaliło żadnych błędów. Przepisywałem rozszerzenie obrazka z .png na .jpg i to samo. Macie jakiś pomysł?

edit
Nadal nie mam pojęcia jak to zrobić.

Podbijam temat.
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.