Kode Anda dibagi menjadi dua bagian yang sepenuhnya terpisah, sisi server dan sisi klien .
|
---------->
HTTP request
|
+--------------+ | +--------------+
| | | | |
| browser | | | web server |
| (JavaScript) | | | (PHP etc.) |
| | | | |
+--------------+ | +--------------+
|
client side | server side
|
<----------
HTML, CSS, JavaScript
|
Kedua belah pihak berkomunikasi melalui permintaan dan tanggapan HTTP. PHP dijalankan di server dan menghasilkan beberapa HTML dan mungkin kode JavaScript yang dikirim sebagai respons kepada klien di mana HTML ditafsirkan dan JavaScript dieksekusi. Setelah PHP selesai mengeluarkan respons, skrip berakhir dan tidak ada yang terjadi di server hingga permintaan HTTP baru masuk.
Kode contoh dijalankan seperti ini:
<script type="text/javascript">
var foo = 'bar';
<?php
file_put_contents('foo.txt', ' + foo + ');
?>
var baz = <?php echo 42; ?>;
alert(baz);
</script>
Langkah 1, PHP mengeksekusi semua kode antar <?php ?>
tag. Hasilnya adalah ini:
<script type="text/javascript">
var foo = 'bar';
var baz = 42;
alert(baz);
</script>
The file_put_contents
panggilan tidak menimbulkan apa-apa, itu hanya menulis "+ foo +" ke dalam file. The <?php echo 42; ?>
panggilan mengakibatkan output "42", yang sekarang di tempat di mana kode yang digunakan untuk menjadi.
Kode HTML / JavaScript yang dihasilkan ini sekarang dikirim ke klien, di mana ia akan dievaluasi. The alert
panggilan bekerja, sedangkan foo
variabel tidak digunakan di mana saja.
Semua kode PHP dieksekusi di server sebelum klien bahkan mulai mengeksekusi salah satu JavaScript. Tidak ada kode PHP yang tersisa dalam respons yang dapat berinteraksi dengan JavaScript.
Untuk memanggil beberapa kode PHP, klien harus mengirim permintaan HTTP baru ke server. Ini dapat terjadi menggunakan salah satu dari tiga metode yang mungkin:
- Tautan, yang menyebabkan browser memuat halaman baru.
- Pengiriman formulir, yang mengirimkan data ke server dan memuat halaman baru.
- Sebuah AJAX permintaan, yang merupakan teknik Javascript untuk membuat permintaan HTTP biasa ke server (seperti 1. dan 2. akan), tetapi tanpa meninggalkan halaman saat ini.
Inilah pertanyaan yang menguraikan metode ini secara lebih rinci
Anda juga dapat menggunakan JavaScript untuk membuat browser membuka halaman baru menggunakan window.location
atau mengirimkan formulir, meniru kemungkinan 1. dan 2.
window.open
atau memuat halaman menggunakan iframe.