Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Co zamiast include?
Forum PHP.pl > Forum > Przedszkole
xpenguine
Witam,

pracuję właśnie nad prostą (pewnie z Waszego punktu widzenia smile.gif) stroną. W lewej komórce tabeli na stronie index.php jest:

  1. <?php include("mainmenu.php"); ?>



plik mainmenu.php w uproszczeniu wygląda tak:

  1. <a href="./index.php?id=1">1</a>
  2. <a href="./index.php?id=2">2</a>
  3. <a href="./index.php?id=3">3</a>



Natomiast prawa komórka tabeli zawiera kod, includujący podstrony z menu.php:

  1. <? 
  2. $id = (int) $_GET['id'];
  3. if(!isset($id)){
  4. include("glowna.html");
  5. } else {
  6. if($id==0){
  7. include("glowna.html");
  8. }else if($id==1){
  9. include("1.php");
  10. }else if($id==2){
  11. include("2.php");
  12. }else if($id==3){
  13. include("3.php");
  14. }else if($id==4){
  15. include("4.php");
  16. }else if($id==5){
  17. include("5.php");
  18. }else if($id==6){
  19. include("6.php");
  20.  }else{
  21. echo "Brak treści o podanym ID";
  22. }
  23. }
  24. ?>



A teraz mój problem smile.gif Na większości podstron znajdują się jeszcze inne linki. Chcę, by po kliknięciu na nie, ich zawartość wyświetlała się tam, gdzie podstrona, na której się znajdują. Na jakimś forum pisali, żeby ponownie zastosować include, tym razem na podstronie, np:

  1. //podstrona "1.php"
  2. <? 
  3. $cat = (int) $_GET['cat'];
  4. if(!isset($cat)){
  5. include("");
  6. } else {
  7. if($cat==0){
  8. include("");
  9. }else if($cat==1){
  10. include("11.php");
  11. }else if($cat==2){
  12. include("22.php");
  13. }else if($cat==3){
  14. include("33.php");
  15.  
  16.  }else{
  17. echo "Błąd";
  18. }
  19. }
  20. ?>
  21.  
  22. <a href="./index.php?id=1&cat=1">11</a>
  23. <a href="./index.php?id=1&cat=2">22</a>
  24. <a href="./index.php?id=1&cat=3">33</a>



No i wszystko pięknie, gdyby po kliknięciu nie includowało mi zarówno treści podstrony, jak i strony do której prowadzą te linki sad.gif
Co zatem zrobić, żeby na przykład:
  1. <a href="./index.php?id=1&cat=3">33</a>
wyświetlało się tam gdzie
  1. <a href="./index.php?id=1">1</a>
, ale nie jednocześnie z tą podstroną?


Bardzo proszę o wyrozumiałość i dziękuję za pomoc smile.gif
potreb
Pokaż jakąś podstronę gdzie masz taki problem, zapewne stosujesz do wywołania następnej strony $_GET, lepiej byłoby zastosować case, dlaczego? Masz tu taki przykład:

  1. <?php
  2. if (isset($_GET["id"])) {$id=$_GET["id"];} else {$id="";}
  3. switch ($_GET['id']) { 
  4. default: include ("glowna.html"); break; 
  5. case "strona1": include ("1.php"); break;
  6. case "strona2": include ("2.php"); break;
  7. case "strona3": include ("3.php"); break;
  8. case "strona4": include ("4.php"); break;
  9. }
  10. ?>


Wywołujesz stronę tak index.php?id=strona1, oczywiście nazwy możesz sobie zmienić i includowane pliki. I teraz jak już masz taki szkielet np w pliku 1.php tworzysz znow switch-a:
  1. <?php
  2. switch ($_GET['go']) { 
  3. default:
  4. echo "jakas tresc";
  5. break; 
  6.  
  7. case "dee": 
  8. echo "druga tresc";
  9. break;
  10. }
  11. ?>


I wywołujesz ją tak index.php?id=strona1 lub index.php?id=strona1&go=dee
adameq
Albo jeszcze prosciej:
  1. <a href="?id=1">1</a>
  2. <a href="?id=2">2</a>
  3. <a href="?id=3">3</a>


  1. <? if (isset($_GET['id']))
  2.  {
  3. $id = $_GET['id'];
  4. if(file_exists("$id.php"))
  5.  include("$id.php");
  6. }
  7. else
  8. {
  9. include("strona.php"); 
  10. }
  11. ?>

Jezeli po kliknieciu w 1 istnieje strona 1.php to wczyta jej zawartosc...
xpenguine
Dziękuję pięknie smile.gif

"Zmiksowałam" sobie Wasze dwa sposoby, troszkę przeinaczyłam, ale najważniejsze, że działa.

@adameq - troszkę nie o to mi chodziło, bo podałeś po prostu łatwiejszy sposób includowania tego, co już miałam. Ale w połączeniu z poprzednim postem jest ok smile.gif
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.