Wykryto działanie AdBlocka!

Prawdopodobnie masz właczonego Adblocka. Korzystanie z bloga jest całkowicie darmowe. Jeśli jednak chcesz docenić prace autora, wyłacz blokowanie reklam dla tej witryny, aby jeszcze bardziej zmotywowac autora do dalszej pracy oraz częstszej publikacji artykułów.

Dziękuje :)

Treść główna bloga

Artykuły

Strona bez przeładowywania się w PHP i Ajax


ajaxNa pewno każdy wcześniej czy później spotkał się z technologią Ajax, dzięki której można zrobić np. dynamiczny upload plików. Ja jednak w tym tutorialu pokażę jak zrobić stronę bez przeładowywania w PHP oraz w Ajax’ie. PHP będzie nam potrzebne do ładowania poszczególnych podstron. Na dole artykuły znajdziecie Demo oraz paczkę do pobrania.


Kod na Githubie

Oto kod strony głównej:

Pomiędzy div’ami o id=”content” mamy zmienną $path, która zawiera infomację o ścieżce do naszej stronie, np. Powróć do artykułu /home/user/example/example/strona_w_oparciu_o_php_i_ajax/index.php.
Za pomocą basename() sprawdzamy, czy skrypt zostaje wykonywany w pliku index.php.

Plik includes.php

Kod w PHP raczej łatwy do ogarnięcia ale dla pewności wyjaśnię 🙂

Tutaj sprawdzam, czy używana wersja PHP jest większa 5.2.0, ponieważ używanie PHP w wersji mniejszej od 5.2.0 nie jest zbyt bezpieczne.

Kolejna zmienna $_SERVER[‚REQUEST_METHOD’], której zadaniem jest sprawdzić jakim sposobem przesyłana jest strona do wyświetlenia się. Z racji, że w pliku script.js linijkę: type: „GET”, oznacza to że można przesyłać tylko za pomocą GET, co też skrypt sprawdza.

Ten kod sprawdza czy istnieje zmienna $page, która jest przekazywania z AJAX’a. Dzięki is_dir dodatkowo sprawdzamy czy istnieje folder pages/ istnieje, jeśli nie pojawia się komunikat.

Ten kod dołącza strony z folderu pages/, np: page/o-mnie.php

Tutaj mamy klauzurę else {}. Dzięki niej jeżeli brak zmiennej $page przenosi nas automatycznie na stronę główną.

Plik js/scripts.php

Kod odpowiedzialny za dynamiczne przeładowywanie się strony.
Zmienna changing_page zawiera adres, na który ma zostać przeniesiony użytkownik.
Na temat Ajax’a można się naczytać tu.

Folder page/ zawiera poszczególne podstrony. W tym przypadku to plik PHP z informacją, co to za strona.
Plik style.css zawiera kilka reguł stylów dla strony.

Źródło – http://www.pomek.pl/

  • Cześć! Dzięki za ten artykuł, na pewno mi się przyda przy tworzeniu stron, a z racji że nie siedze w JS tym jeszcze bardziej. Pozdrawiam i czekam na kolejny poradnik

  • gearvamoi
    • Poprawione.
      Ponad to udoskonaliłem skrypt, poprzez dodanie kilka drobnych zabezpieczeń.

      Zapraszam do korzystania 🙂

      • gearvamoi

        Dziękuję, później się pobawię 😉

      • gearvamoi

        Wiesz jak to przerobić by działało to z formularzami?
        Bo nie wystarczy w js podać id formularza i zamienić .click(function() na .submit(function()?

        • Mógłbyś podać jakąś stronę z czymś takim? Bo nie za bardzo wiem o co Ci chodzi.

  • Skrypt nie dziala jak sie wrzuci na WebServer 2.1

    • Może powiesz coś więcej? Jakieś błędy?

  • Marysia
    • Skrypt znajdujący się na podanej przez ciebie stronie służy do tworzenia raczej bardziej zaawansowanych witryn. Skrypt przedstawiony w moim skrypcie to tylko prosta mała witryna bez jakichkolwiek innych funkcjonalności. Oczywiście nic nie stoi na przeszkodzie ale skrypt ten rozbudować wedle własnej woli 🙂

  • Progo

    Jak wysłać zmienną $_GET w linku do jakiejś podstrony?

  • Inos

    skrypcik działa super 😉 przydałoby się jeszcze „wzbogacić” go o zmianę adresu url podczas ładowania innych stron 😉 PoZdrawiam

  • Dawid Dinger

    skrypt nie działał na telefonie i jednocześnie na komputerze po usunięciu

    if($_SERVER[‚HTTP_HOST’] !== ‚domena.pl’)
    die(‚Nieprawidłowe przekierowanie. Chcesz się włamać?’);

    if($_SERVER[‚REQUEST_METHOD’] !== ‚GET’)
    die(‚Skrypt obsługuje tylko rządania GET!’);

    skrypt działa ok 🙂