Strona 1 z 1

Re: [PHP] Ładowanie fragmentów strony

: czw kwie 06, 2006 7:51 am
autor: Hawk
marek333 pisze:chciałbym aby po kliknięciu linku na stronie nie wczytywała się ona na nowo w całości ale tylko jej fragment z nową treścią
Tak sie niestety nie da, jesli chcesz korzystac z PHP to zmiana nawet malego fragmentu strony wymaga przeladowania jej od nowa.
marek333 pisze:Czy ten wczytywany fragment robię jako osobną stronę umieszczam na serwerze a w indesie podaję tylko wywołanie.
Mozesz tak zrobic. Najprostszym sposobem jest skorzystanie z funkcji include() - ten temat byl juz wielokrotnie poruszany na tym forum.

Re: [PHP] Ładowanie fragmentów strony

: czw kwie 06, 2006 12:26 pm
autor: Hawk
To juz zalezy od tego jak sobie skrypt napiszesz, najprostrzy przyklad:

[php]
// kod html
<?php
$plik = $_GET["id"];
include($plik.'.html');
?>
// ciag dalczy kodu html
[/php]

Odwolanie bedzie wygladac mnie wiecej tak, index.php?id=strona1, wtedy skrypt zaladuje plik strona1.html znajdujacy sie w tym samym katalogu co index.php, ale nic nie stoi na przeszkodzie zeby w funkcji include() ustawic jakas sciezke do katalogu z plikami.

To co napisalem to bardzo duze uproszczenie. Ten kod pozwala na wyswietlenie dowolnego pliku .html z serwera, w praktyce lepiej byloby zrobic na przyklad tablice z dozwolonymi nazwami plikow tak zeby ktos lepiej zorientowany nie wyswietlil sobie czegos czego nie powinien :).

Re: [PHP] Ładowanie fragmentów strony

: czw kwie 06, 2006 2:34 pm
autor: Balas
chciałbym aby po kliknięciu linku na stronie nie wczytywała się ona na nowo w całości ale tylko jej fragment z nową treścią
Do tego mozesz uzyc AJAXa ;)
http://forum.php.pl/index.php?showforum=16

Re: [PHP] Ładowanie fragmentów strony

: pt kwie 07, 2006 9:14 pm
autor: Roberto
marek333 pisze: 1 czy oko ma mieć rozszrzenie ".php"? (pytam dla świętego spokoju choć jestem pewien że tak)
Nie musi. Może mieć html a może nawet nie mieć wcale rozszerzenia.
2 Czy w prawej dolnej komórce w indesie wystarczy wpis:
<td>
<?php include("oko.php"); ?>
</td>
Jeśli komórka "prawa dolna" nie będzie tą częścią strony która ma się zmieniać po kliknięciu na jakieś linki umieszczone gdzieś indziej to tak; taki include wystarczy.
3 czy index ma rozszerzenie "php" czy "html"?
W zasadzie powinny działać oba ale ja się spotykałem z serwerami na których kod php działał dopiero gdy rozszerzenie pliku było *.php i choć nie wiem czemu tak się dzieje to dla świętego spokoju daję rozszerzenie php i nie ma prawa nie działać ;p
4 jaką konstrukcję ma wczytywana w index strona "oko.php"? Czy jest to normalny zapis jak pod html tylko z innym tozszerzeniem np:

<html>
<body>
<img src="plikgraf.jpg">tekst tekst tekst tekst tekst
tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst
</body>
</html>

i ten plik zapisuję pod nazwą "oko.php"?
Absolutnie nie, bo przecież include jest odpowiedzialny za wciągnięcie zawartości jednego pliku do innego pliku, więc jeśli zrobisz include takiego oko.php do index.php to w efekcie będziesz miał index.php zawierający dwie deklaracje typu dokumentu, dwie sekcje body, itd. Plik includowany ma zawierać tylko i wyłącznie to co faktycznie chcesz do strony wczytać.

Albo inaczej; piszesz normalnie cały index, potem zaznaczasz ten fragment kodu który ma być includowany, wycinasz go, na jego miejsce wpisujesz funkcję include, a to co wyciąłeś wklejasz do pliku oko.php
5 Gdzie na serwerze umieszczam plik "oko.php"? w tym samym folderze co index? Czy stworzyć jakiś nowy folder? gdzieś czytałem że ma to być folder include
W sumie to chyba obojętne, grunt, żeby ścieżka do tego pliku zapisana w kodzie strony zgadzała się z faktycznym jego położeniem.


A tak w ogóle to precz z układem na tabelkach :P

--

Hawk podał ci jeden z przykładów includowania stron, ale to co on podał służy do zupełnie czegoś innego, a jeśli dobrze rozumiem twój problem to tobie chodzi o coś takiego jak np. stopka, która zawsze (na każdej postronie) wyświetla się tak samo i zawiera np. datę ostatniej modyfikacji serwisu. Wtedy po dokonaniu zmian na serwisie nie trzeba klepać tej samej stopki na każdej podstronie z osobna, tylko wystarczy zmienić plik stopka.php który w każdej podstronie includowany jest tą krótszą wersją include ;)

Re: [PHP] Ładowanie fragmentów strony

: pt kwie 07, 2006 9:15 pm
autor: Stig
marek333 pisze:1 czy oko ma mieć rozszrzenie ".php"? (pytam dla świętego spokoju choć jestem pewien że tak)
Nie, nie musi.
marek333 pisze:2 Czy w prawej dolnej komórce w indesie wystarczy wpis:

Kod: Zaznacz cały

<td>
<?php include("oko.php"); ?> 
</td>
Wystarczy.
marek333 pisze:3 czy index ma rozszerzenie "php" czy "html"?
Rozszerzenie dla którego serwer pozwoli parserowi wykonać skrypt - najczęści jest to *.php.
marek333 pisze:4 jaką konstrukcję ma wczytywana w index strona "oko.php"? Czy jest to normalny zapis jak pod html tylko z innym tozszerzeniem np:

Kod: Zaznacz cały

<html>
<body>
<img src="plikgraf.jpg">tekst tekst tekst tekst tekst
tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst
</body>
</html>
Jest to kod, który chciałbyś ujrzeć zamiast instrukcji include. A więc wstawianie tagów html i body jest działaniem niepoprawnym.
marek333 pisze:5 Gdzie na serwerze umieszczam plik "oko.php"? w tym samym folderze co index? Czy stworzyć jakiś nowy folder? gdzieś czytałem że ma to być folder include
Jeśli jako wartość argumentu instrukcji inlcude podajesz samą nazwę pliku oko.php to musi się on znajdować w tym samym miejscu co index.php
marek333 pisze:inna sprawa
Odwolanie bedzie wygladac mnie wiecej tak, index.php?id=strona1
gdzie owo odwołanie jest wpisane?
Za znakiem zapytania. id to zmiena przekazywana metodą GET (w adresie), a strona1 to jej wartość.
marek333 pisze:kolejna rzecz
Znaleziony przeze mnie kod:

[php]<?php include("oko.php"); ?>[/php]

ma się jakoś biednie przy Twoim

Twój kod:

[php]<?php
// kod html
$plik = $_GET["id"];
include($plik.'.html');
// ciag dalczy kodu html
?>[/php]
Zachowując odpowiednie standardy bezpieczeństwa powinien on wyglądać mniej więcej tak.

EDIT: jak wiadać Roberto mnie ubiegł ;)

EDIT2:
Roberto pisze:A tak w ogóle to precz z układem na tabelkach :P
Popieram :)

Re: [PHP] Ładowanie fragmentów strony

: sob kwie 08, 2006 5:37 pm
autor: Stig
Ależ proszę bardzo - to nie jest żadna tajemnica - tabele służą do przekazywania danych tabelarycznych - każde inne ich zastosowanie łamie zasady semantyki. Tabele służące do budowania układu stron negatywnie wpływają m. in. na poziom funkcjonalności, dostępności i optymalizacji. Rozwiązaniem dla tego sposobu jest semantyczny kod - gdzie każdy znacznik wykorzystywany jest do właściwego celu. Nie widzę sensu rozpisywania się na ten temat, skoro takie źródła jak prezentacja "Dlaczego układ na tabelkach jest głupi: opis problemu i jego rozwiązania" (którą Ci już wcześniej podlinkowałem) oraz artykuł "Projektujesz w tabelkach? OBUDŹ SIĘ!" tłumaczą to w znacznie lepszy sposób.

BTW, strona główna wp.pl jest w znacznej mierze semantyczna i poprawna. A poza tym, to że serwis jest popularny nie musi świadczyć o tym, że jest poprawnie stworzony ;)

Re: [PHP] Ładowanie fragmentów strony

: sob kwie 08, 2006 6:35 pm
autor: Roberto
marek333 pisze:utrzymam dalej koncepcję z tabelami
a to ja bojkotuję dalszą pomoc :-D i ogranicze się do podania jednego z przykładów includowania jakie jest ci potrzebne: http://www.webdiary.pl/technologie+art.id+50.htm