Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] różny content - jak to zrobić?
Forum PHP.pl > Forum > Przedszkole
Lathiel
Witam, poniżej wkleje mój kod główny dla jasności

  1. <?php
  2.  
  3. include('akcje/funkcje.php');
  4.  
  5. $TRESC = empty($_GET['tresc']) ? 'index' : $_GET['tresc'];
  6.  
  7. switch($TRESC){
  8.  
  9. case 'index' ;
  10.  
  11.  
  12. break;
  13.  
  14. case 'rejestruj' ;
  15.  
  16.  
  17. if(isset($_POST['submitRejestruj'])){
  18. if($new_id = createUser($_POST['user'])){
  19. $_SESSION['user']['id'] = $new_id;
  20.  
  21.  
  22. }
  23.  
  24. }
  25. //header("Location: index.php");
  26.  
  27. break;
  28. case 'loguj' ;
  29.  
  30.  
  31. break;
  32.  
  33. }
  34.  
  35. include('header.php');
  36. include('menu.php');
  37. include('content.php');
  38. include('footer.php');
  39.  
  40.  
  41.  
  42.  
  43. ?>


i teraz mam takie pytanie, gdy chcę przejść do podstrony Leksykon w której chcę zamieścić dodatkowe divy których nie ma w podstawowym content.php to jak ułożyć kod? wystarczy, że stworzę plik index2.php o kodzie takim jak wyżej tylko że będzie tam zamiast content.php np content2.php z dodatkowymi ramkami grafikami etc i to uwzględnie w odsyłaczu np zamiast "index.php?tresc=index" zmienię odsyłacz na "index2.php?tresc=leksykon" - czy taki manewr zadziała?


EDIT: rozwiązałem problem, działa ale czy to jest optymalny kod czy da się to jeszcze jakoś skrócić?
CuteOne
Poczytaj o routerach i layoutach w PHP, ułatwisz sobie życie smile.gif
Lathiel
Czy da się zapisać funkcje include tak by odczytywała mi pliki z np 'leksykon/' oraz 'leksykon/miejsca/' ?
csharp
do include musisz podać konkretną scieżkę - samo z folderów Ci nie wyciągnie plików... chyba, że nie zrozumiałem pytania..
Lathiel
chodzi o to że chcę by wyciągał mi pliki z folderu leksykon oraz z folderu który znajduje się w leksykonie w tym przypadku leksykon/miejsca/

bo include z samego leksykonu działa bez zarzutu ale jak już chcę sięgnąć do podfolderu na różne sposoby nie działa mi to
csharp
sama nazwa leksykon nic nikomu nie mówi smile.gif

jeśli masz plik

index.php i chcesz wywołać coś z tego samego folderu to robisz -> include('jakisplik.php');

jeśli z folderu podrzędnego include('folder/jakisplik.php');

z folderu jeszcze bardziej podrzędnego include('folder/folder2/jakisplik.php');

z folderu nadrzędnego include('../glownyfolder/jakisplik.php');
Lathiel
ano tak mam ale może przedstawie to bardziej obrazowo

mam index.php

i on składa mi się z plików header.php etc etc content.php - wszystko oparte na divach i wszystko pięknie jak nacisnę sobie odnośnik który znajduje się w header - on przeładowywuje mi stronę na index2.php gdzie content jest inny niż w pliku index.php

ten inny content nazwałem sobie content2.php gdzie w jego divie umieściłem include('leksykon/'. $TRESC . '.php') - działa wszystko pięknie, bo w leksykonie mam 4 pliki .php każdy ze spisem treści i teraz chcę zrobić tak że po wczytaniu leksykon/miejsca.php który wyświetla mi spis miejsc w content2.php, żeby po kliknięciu w któryś z linków odczytał mi treść która znajduje się w leksykon/miejsca/jakiśplik.php i ją załadował do tego diva w content2.php zamiast tego spisu treści

wpadłem na taki pomysł ale nie mam pojęcia jak go zrealizować otóż czy jest możliwe stworzenie if'a gdzie warunkiem będzie "jeśli spełniony zostanie warunek include leksykon/ to zrobię set_path na leksykon/*/"

/*/ - nie wiem czy dobrze kombinuje ale chyba to powinno odczytać jakikolwiek folder zadam w odnośniku
peter13135
Tak. Jest możliwe.
Lathiel
A jak to stworzyć bo w php jestem świeży i kominuje ale trochę nieudolnie
csharp
czytam, czytam i nie ogarniam do końca smile.gif

zadeklaruj sobie w linkach zmienną get i do niej się odwołuj... przynajmniej ja bym tak zrobił, jeśli chcesz aby Ci się coś wyświetliło w jakimś contencie po kliknieciu to zmienna GET będzie dobrym wyjściem.

np. coś takiego...

  1. $go = $_GET['go'];
  2.  
  3. if(!empty($go) && is_file("pages/$go.html"))
  4. {
  5. include "pages/$go.html";
  6. }
  7. else
  8. {
  9. include "pages/error.html";
  10. }


o to chodzi ? albo zadawaj krótkie pytania i małymi kroczkami dojdziemy biggrin.gif
Lathiel
ten warunek mam - że jak nie została wybrana żadna strona albo podana nie istnieje to wywołuje mi domyślnie stronę index

więc małymi kroczkami.

Masz stronę główną zawartą w głównym folderze i jak klikniesz w któryś link to wczytuje Ci do strony treść znajdującą się w podfolderze

np. FOLDER GŁÓWNEJ STRONY/TREŚĆ/jakiśplik.php

i to wywołuje bez problemu funkcja include tak jak pisaliśmy wcześniej

teraz znajdujemy się w tym jakiśplik.php

i on zawiera odnośniki do swojego podfolderu czyli ścieżka całkowita od strony index wygląda tak FOLDER GŁÓWNEJ STRONY/TREŚĆ/FOLDER JAKIŚPLIK/odnośnikjakiśplik.php

Wszystkie operacje dzieją się na poziomie FOLDER GŁÓWNEJ STRONY i teraz jak napisać kod bym mógł wczytywać strony z TREŚĆ jak i z FOLDER JAKIŚPLIK co mojego określonego w content2.php diva
csharp
ale przecież jak robisz
  1. include
to nie ma żadnego znaczenia, że wczytujesz z jakiegoś tam folderu/pliku. Wczytana treść musi mieć odnośniki jak byś linkował z głównej strony.

czyli jesli na głównej stronie masz
  1. <a href="innastrona/inny.php">link</a>

i chcesz do tego samego pliku się odwołać, z tym, że linki umieszczone są w jakimś głębokim folderze to link tworzysz identycznie, czyli
  1. <a href="innastrona/inny.php">link</a>


dobrze Ciebie zrozumiałem?
CuteOne
Mówiłem poczytaj o routerach bo gubisz się kolego. W ten sposób za pomocą ścieżki bezwzględnej includujesz co tylko chcesz (w kodzie pominąłem dynamiczny include plików)

index.php
  1. define('ROOT_PATH', realpath(dirname(__FILE__)));
  2.  
  3. include ROOT_PATH . '/jakis_folder/tresc.php';


tresc.php
  1. include ROOT_PATH . '/jakis_folder/inny_folder/plik2.php';
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.