Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z include
Forum PHP.pl > Forum > Przedszkole
Krzakus
Na początek zaznaczam że php jest mi totalnie obce. W związku z powyższym, bardzo rzadko używam go w tych niewielu stronach które robię, a jeżeli już muszę, to idę metodą na sępa (czyli używam gotowego kodu znalezionego w sieci).
Tak, wiem, to nieładnie, ale nie o tym mowa...

Mam następujący problem.
Na swojej stronie, zastosowałem taki oto kod:

Kod
<?
   switch ($HTTP_GET_VARS['go'])
   {
      case 2:
      include("2.php");
         break;
      case 3:
         include("3.php");
         break;
      case 4:
         include("4.html");
         break;
      case 5:
         include("5.html");
         break;
      case 1:
      default:
         include("1.html");  
   }
   ?>

Link ma postać:

Kod
   <a href="index.php?go=1">LINK</a>


Teraz załóżmy że na stronie 2.php, chcę zastosować identyczny schemat. Czyli - otwiera mi się index, klikam LINK, pojawia mi się w oknie (tabeli, cokolwiek) zawartość 2.php. Oczywiście menu strony pozostaje na swoim miejscu i nie jest ładowane od nowa.
Plik 2.php, ma zawierać kolejne trzy przyciski (czyli własne menu) i po kliknięciu w któryś z nich, pod nimi ma się wyświetlać zawartość kolejnych plików.
Niestety, jedyne co mi się udało osiągnąć, to że w chwili kiedy kliknę jeden z tych trzech przycisków, plik 2.php z nową zawartością otwiera mi się w tym samym oknie, ale znika zawartość index.php (czyli główne menu i całe formatowanie z przypisanego mu css'a).
Próbowałem w 2.php zamiast 'go' użyć 'id' ale nic to nie dało.
Generalnie moje pytanie brzmi "WTF?" i czy da się to jakoś zrobić.

Z góry wielkie dzięki za odpowiedź napisaną językiem dla php'owego ignoranta smile.gif
lashus
Stosujesz po prostu "target" przy linku. I to nawet nie wymaga znajomości php tylko htmla winksmiley.jpg

Kod
<a href="index.php?go=1" target="tabelka">LINK</a>


Gdzie: tabelka = nazwa tabelki (<table name="tabelka">), jeśli dobrze cię zrozumiałem ofc. -.-
okitoki
co to za <b> przy include smile.gif, nie stosuje się tak na chama html-a w php
parametry w nagłówku zwraca w tablicy $_GET
Krzakus
okitoki - bold miał być dla was, żeby podkreślić o który plik chodzi. Nie zwróciłem uwagi że KOD nie uznaje formatowania tongue.gif. W oryginalnym kodzie tego nie ma. Tutaj też już poprawiłem.
A resztę twojej wypowiedzi poproszę na polski winksmiley.jpg

lashus - Dzięki za chęci, ale jedyne co mi się udało osiągnąć, to że teraz otwiera mi nową zakładkę zamiast otwierać w tym samym oknie tongue.gif

Zastanawiam się czy nie zlać i nie wklepać tych trzech przycisków na sztywno w każdą podstronę. Będzie łatwiej. Problem się pojawi w momencie kiedy postanowię dodać czwarty (a na bank do tego dojdzie sad.gif).
megawebmaster
Chodzi o to, że zamiast $HTTP_GET_VARS używa się po prostu $_GET (to pierwsze jest już zdeprecjonowane).
Krzakus
Ok, nie wiem czy się rozumiemy, więc postaram się wyjaśnić jeszcze raz.

index.php zawiera menu, które ma się cały czas wyświetlać bez przeładowania strony oraz
ma zawierać treść pobieraną z plików .html po kliknięciu na przycisk w menu.

zamiast jednej ze stron .html ma być strona 2.php, która ma zawierać własne dodatkowe menu (ładowane tylko w chwili załadowania 2.php do index.php) oraz
ma zawierać treść pobieraną z kolejnych plików .html po kliknięciu na przycisk z menu zawartego w 2.php

Zawartość index.php (czyli nagłówek, menu itp) ma być cały czas wyświetlana, niezależnie od tego, czy w nim jest wyświetlana zawartość pliku 2.php czy 666.html.

Założyłem, że w takim razie w pliku 2.php muszę umieścić identyczny kod php jak w pliku index.html. Generalnie wiem już w czym może leżeć problem. Jeżeli menu pliku 2.html zawiera link w postaci:
Kod
<a href="2.php?id=2">LINK</a>

to chyba rozumiem dlaczego otwiera się to w nowym oknie, bez zawartości index.php.

Kod w miejscu którego ma być wyświetlana zawartość kolejnej (trzeciej już) strony to:
Kod
    <?
switch ($_GET['id'])
{
    case 2:
       include("2.html");
       break;

    case 1:
    default:
       include("1.html");  
}
?>


Pytanie, jak to rozwiązać.
Ive
albo zaprzęgasz ajaxa/prototype, albo iframe, albo menu w index.php musi się przeładować.
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.