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_contents
Wezwanie 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. alert
Wezwanie działa, gdy foo
zmienna 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.location
lub przesłała formularz, emulując możliwości 1. i 2.
window.open
lub załadować stronę za pomocą elementu iframe.