Twój kod jest podzielony na dwie całkowicie oddzielne części, po stronie serwera i po stronie klienta .
|
---------->
HTTP request
|
+--------------+ | +--------------+
| | | | |
| browser | | | web server |
| (JavaScript) | | | (PHP etc.) |
| | | | |
+--------------+ | +--------------+
|
client side | server side
|
<----------
HTML, CSS, JavaScript
|
Obie strony komunikują się za pośrednictwem żądań i odpowiedzi HTTP. PHP jest uruchamiane na serwerze i generuje kod HTML, a może kod JavaScript, który jest wysyłany w odpowiedzi na klienta, w którym HTML jest interpretowany i JavaScript jest wykonywany. Gdy PHP zakończy wysyłanie odpowiedzi, skrypt kończy się i nic się nie dzieje na serwerze, dopóki nie pojawi się nowe żądanie HTTP.
Przykładowy kod działa w następujący sposób:
<script type="text/javascript">
var foo = 'bar';
<?php
file_put_contents('foo.txt', ' + foo + ');
?>
var baz = <?php echo 42; ?>;
alert(baz);
</script>
Krok 1, PHP wykonuje cały kod między <?php ?>znacznikami. Rezultat jest następujący:
<script type="text/javascript">
var foo = 'bar';
var baz = 42;
alert(baz);
</script>
file_put_contentsWezwanie nie spowodowało niczego, po prostu napisał „+ foo +” do pliku. <?php echo 42; ?>Wezwanie spowodowało wyjście „42”, który jest teraz w miejscu, gdzie ten kod kiedyś.
Wynikowy kod HTML / JavaScript jest teraz wysyłany do klienta, gdzie jest oceniany. alertWezwanie działa, gdy foozmienna nie jest stosowany wszędzie.
Cały kod PHP jest wykonywany na serwerze, zanim klient zacznie nawet wykonywać JavaScript. W odpowiedzi nie ma kodu PHP, z którym JavaScript mógłby współpracować.
Aby wywołać jakiś kod PHP, klient będzie musiał wysłać nowe żądanie HTTP do serwera. Może się to zdarzyć przy użyciu jednej z trzech możliwych metod:
- Link, który powoduje, że przeglądarka ładuje nową stronę.
- Formularz, który przesyła dane do serwera i ładuje nową stronę.
- AJAX żądanie, która jest techniką JavaScript, żeby uczynić regularny żądanie HTTP do serwera (jak będzie 1. i 2.), ale bez opuszczania bieżącej strony.
Oto pytanie szczegółowo opisujące tę metodę
Możesz także użyć JavaScript, aby przeglądarka otworzyła nową stronę za pomocą window.locationlub przesłała formularz, emulując możliwości 1. i 2.
window.openlub załadować stronę za pomocą elementu iframe.