Jest tutaj tyle przykładów, jak coś policzyć i wyświetlić w PHP. Jednak jak ja to mam połączyć z wyglądem strony, który przecież jest pisany w HTML? Mam mieć cały kod HTML i wcinki PHP w jednym dużym pliku? Wygląda to na rozwiązanie dość skomplikowane i trudne w rozwoju.
2 Odpowiedzi
Dzień dobry,
trochę odświeżę pytanie. Coś tam stworzyłem w HTML i JS (proste początki) i próbuję to rozbudować o PHP. Tylko nie mogę złapać współdziałania. Na swojej stronie mam kalkulator obliczający pewną wielkość. W HTML dwa pola wyboru opcji (parametrów) i na podstawie tego obliczana wartość. Start obliczeń OnClick klawisza, które uruchamia skrypt JS. W JS jest wzór do obliczenia wartości i funkcje do podmiany zawartości strony (bez przeładowania) do wyświetlenia wyniku. Ponieważ HTML i JS działają w przeglądarce, po stronie klienta, sposób obliczenia wartości jest jawny. Chciałbym, aby nie było możliwości poznania formuły obliczeniowej, więc pomysł że PHP będzie liczył na serwerze. Z tego co zrozumiałem do tej pory, w PHP nie ma możliwości zmiany zawartości strony bez jej przeładowania, ponieważ musi być ponownie wygenerowana. Ale jak, po wysłaniu formularza ze strony do pliku “obliczeniowego” PHP, wrócić na stronę z wyświetlonym wynikiem (z podmienioną zawartością) ? No i czytając przedmówcę doszedłem do wniosku, że z całą stroną to będzie problem. Tak więc, czy dobrze zrozumiałem, że trzeba budować strony z fragmentów, które można podmieniać w razie potrzeby ? Np. w moim przypadku “includować” przy pomocy PHP fragment kodu HTML z wynikiem ?


Cześć Marcin,
masz rację że można to zrobić na wiele sposobów, a AJAX czy jQuery to pewnie optymalne narzędzia. Tylko, że ja na razie próbuję rozgryźć filozofię, zasadę działania PHP. I tak, np. taki prosty przykład. Użytkownik wysyła formularz na serwer. W PHP przeprowadzam walidację, dane niekompletne. Chcę wysłać komunikat aby uzupełnić dane, nie zmieniając treści strony (chyba i tak musi się przeładować). Wykombinowałem, że w PHP wyślę alert JS (nie doszedłem jeszcze czy w PHP jest taka funkcja). Tylko, że na razie otrzymuję albo pustą stronę z komunikatem, albo odświeżoną stronę bez komunikatu. Może brakuje mi ogólnej wiedzy na temat działania klient-serwer.

Witaj Marcinie,
dziękuję za odpowiedź. Pewnie masz rację, że w takim przypadku najlepszymi narzędziami będzie AJAX czy jQuery, tylko że ja na razie próbuję załapać filozofię-zasadę działania PHP. Nie doczytałem jeszcze podręcznika do końca, ale taki prosty przykład. Użytkownik wysyła formularz z danymi na serwer. W PHP dokonuję obliczeń na podstawie tych danych. I teraz może mnie oświecisz jak wyprowadzić wynik na stronę z której wysłano formularz ?
Pozdrawiam

PHP przygotowuje kompletny wynik po stronie serwera – może to być gotowa strona HTML, a może tylko jakaś krótka struktura JSON czy XML. Generalnie, Twój przykład może działać tak, że wysyłając formularz załadujesz tę stronę raz jeszcze, a w kodzie PHP będzie na początku sprawdzenie, czy dane formularza zostały wysłane. Jeśli tak, skrypt dokona obliczeń i wyświetli kompletną stronę z wynikiem. Jeśli danych z formularza nie ma, to wyświetli stronę z pustym formularzem do wypełnienia. A możesz formularz wysłać metodą AJAX, czyli wysłać dane z formularza na inny adres PHP, który przejmie te dane i policzy wynik, po czym wyśle sam wynik w formie JSON. Wtedy Twój skrypt JavaScript rozpozna otrzymaną odpowiedź i zaktualizuje stronę bez jej przeładowywania. Popróbuj i szybko zobaczysz, jak to działa.
Cześć Andrzej,
Wystarczy, że skorzystasz z technologii zwanej AJAX. W surowym JavaScript będzie to wymagało nieco zachodu, ale jeśli używasz np. jQuery to zrobisz to mega prosto – https://api.jquery.com/jquery.post/