Include instrukcja warunkowa


(Pintu) #1

Mam pewien problem w wyświetlaniem się stron w podstronach w odpowiednim div'ie.

Skorzystałem z tej strony z tych rad http://computersun.pl/php_db/porady/include-instrukcja-warunkowa-w_47.html

i wszystko ładnie działa, czyli jedno menu na podstronach, tylko sęk tkwi w tym jak na podstronie są kolejne linki bądź też podstrony i już nie chcą się wyświetlać w odpowiednim miejscu. Jak podstrony-podstrony includowac w tej instrukcji warunkowej? Może ktoś coś podpowiedzieć w tej kwestii?


(Kontakt) #2

To wszystko zależy od tego jak zbudowaną masz stronę :wink: Czy całe strony są osobnymi plikami do wyczytywania czy tylko treści itd.

A jeżeli chodzi Ci tylko o koleją podstronę, to robisz to identycznie, tylko wstawiasz inne ident w linku :wink:


(Pintu) #3

(ra-v) #4

Szablon zakładam że jest plikiem index.php

[END OF EDIT]


Stronę wypyłujesz np. tak

jakasdomena.pl/index.php?id=cos

no i podstronę np.

jakasdomena.pl/index.php?id=cos&nr=1

Z cos.html robisz cos.php i w cos.php dodajesz analogicznie warunek

(.........)

<?php

if(empty($_GET['nr']){

  if($_GET['nr']==1){

        include("cos1.php");

  }

}

?>

(.......)

O coś takiego chodzi?


(Pintu) #5

tak zgadza się

kolejna rzecz, bo nie bardzo rozumiem to jet to, iż mając na myśli analogicznie to robię to w pliku cos.php

<?php 


	if(empty($_GET['id']) or $_GET['id']=="info"){

		include("info.php");

		}

?>

p.s. plik info.php to jest ta kolejna podstrona

no i oczywiście


(Sitemaster) #6

Zamiast wielu if'ów użyj switch http://www.php.net/manual/pl/control-st ... switch.php

Dalej, rozumiem że chcesz wszystko ładować przez szablon w liku index.php

-no więc skoro w tym pliku ładujesz strony przez zmienną $_GET['id']

np. index.php?id=strona1 -> include 'strona1.php';

to jak chcesz z kolei na tej stroniee "strona1.php" utworzyć kolejne podstrony, to robisz analogicznie jak w pliku index, ale z inną zmienną np $_GET['nr']

Teraz wywołanie tego bedzie wyglądało tak:

index.php?id=strona1&nr=podstrona2 -> include 'strona1.php'; -> include 'podstrona2.php';


(Pintu) #7

Wiesz api już zaczyna mnie złościć ten php i ta instrukcja warunkowa! Kombinuje na wiele sposobow i w ogole... i za nic nie chce to zadziałać!

Wg.Twojej rady ok wyświetla się

ale strona1.php i podstrona2.php - razem! , a przecież chodzi aby wyświetliła się sama podstrona2.php.

No dalej poszedłem za radą i zacząłem czytać i kombinować ze switchem i:

zrobiłem plik wazne.php a w nim

<? php

    switch ($_GET['id'])

        {

        case ("strona1"):

        include ("strona1.php");

        break;


        //( ... )

        default:

        include ("index2.php");

        }

?>

zaś w strona1.php zawarłem taką składnię:

<? php

    switch ($_GET['nr'])

        {

	case ("info"):

        include ("info.html");

        break;

	case ("info2"):

        include ("info2.html");


default:

         echo '

| [[:: COŚ ::]](?id=strona1&id=infoda)[[:: LINK ::] ](?id=strona1&id=info2) |

'; } ?>[/code] i w głównym indexie.php dajemy
[code]<? include ("wazne.php"); ?>

i zaraz wyskakuje błąd na drugiej linii, czyli tutaj switch ($_GET['id'])

ja juz nie wiem co z tymi fantami robić...


(Grz Bogusz) #8

Przekombinowałeś..

Nie wiem co jest w pliku strona1.php i co w podstrona2.php.

Ale zakładamy, że jest to zwykła treść, z tym, że w strona1.php masz jakiś tam odnośnik, który kieruje do zawartości podstrona2.php. Tak jest?

Jeśli tak i chcesz, aby w miejsce strona1.php pojawiała się zawartość podstrona2.php, to w pliku strona1.php umieszczasz taki link:

podstrona2[/code]


Oczywiście w pliku index.php musisz dodać formułkę, taką samą jak tą dotyczącą strona1.php, oczywiście z poprawionymi danymi. Np:

[code] if ($_GET['id'] == 'podstrona2') { include 'podstrona2.php'; }
I skoro takie drobne problemy Cię wnerwiają, to raczej nie polubisz żadnego języka wykorzystywanego przy tworzeniu stron :wink: EDIT Jeśli dałeś coś takiego:

<? include ("wazne.php"); ?>

to nie dziw się, że wywala Ci błąd.. wywal te nawiasy, są zupełnie niepotrzebne.


(Pintu) #9

Działa! Nareszcie! :smiley: Dzięki wielkie leone Nareszcie zadziałało... a ile z tym nerwów było to...

a jak to wpisać jeszcze, jakby tą podstronę2.php dać do folderu naprzykład folder odnosniki - jakby wowczas wygladaloby zapytanie?

Ale mam takie jeszcze do Ciebie pytanie, jak to samo zrobić z tą instrukcją switch? Czy to co pokazałem w poście wcześniejszym jest aż tak mocno przekombinowane? bo wyskakuje mi błąd właśnie w drugiej linii z tym switchem.

być może to tez być związane, że nie używam najlepszego programu i nie podświetla mi wszyzstkich nawiasów itp... ale nie bedziemy sie usprawiedliwiać :smiley:

Mówi się że najłatwiejsze rzeczy bywają najtrudniejszymi :smiley:


(Grz Bogusz) #10

Nie zapytanie, a odnośnik. Takie rzeczy to powinieneś wiedzieć :wink:

Zostawiasz to bez zmian, natomiast edytujesz to

if ($_GET['id'] == 'podstrona2')

   {

    include '[b]odnosniki/[/b]podstrona2.php';

   }

Jeśli chcesz wykorzystać switch, to zamiast $_GET['nr'] stwórz zmienną $nr:

$nr = $_GET['nr'];

I wtedy:

switch ($nr)

        {

   case ("info"):

        include "info.html";

        break;

I jak będą Ci wyskakiwać błędy, to pisz jakie :wink:


(Pintu) #11

tak tak wiem wiem tylko za szybko pisałem :smiley: a potem i tak napisałem odnosnik heh

ale dzięki za podpowiedź, ale powiem Ci że doszedłem do tego wcześniej - jak zrobić z tymi podstronami, bo ja uczę się tego języka nazwijmy to od środka, czyli coś wyczytam w środku i od razu do pisania się zabieram zamiast pisać krok po kroku itp itd

Jeszcze raz dzięki wielkie leone


(Grz Bogusz) #12

Lepiej zacznij krok po kroku, bo inaczej w pewnym momencie się pogubisz i koniec :wink: