Kodunuz, sunucu tarafı ve istemci tarafı olmak üzere tamamen ayrı iki kısma ayrılmıştır .
|
---------->
HTTP request
|
+--------------+ | +--------------+
| | | | |
| browser | | | web server |
| (JavaScript) | | | (PHP etc.) |
| | | | |
+--------------+ | +--------------+
|
client side | server side
|
<----------
HTML, CSS, JavaScript
|
İki taraf HTTP istekleri ve yanıtları aracılığıyla iletişim kurar. PHP sunucuda yürütülür ve HTML'nin yorumlandığı ve JavaScript'in yürütüldüğü istemciye yanıt olarak gönderilen bazı HTML ve belki de JavaScript kodu verir. PHP yanıt vermeyi tamamladığında, komut dosyası sona erer ve yeni bir HTTP isteği gelene kadar sunucuda hiçbir şey olmaz.
Örnek kod şu şekilde çalışır:
<script type="text/javascript">
var foo = 'bar';
<?php
file_put_contents('foo.txt', ' + foo + ');
?>
var baz = <?php echo 42; ?>;
alert(baz);
</script>
Adım 1, PHP <?php ?>
etiketler arasındaki tüm kodu yürütür . Sonuç şudur:
<script type="text/javascript">
var foo = 'bar';
var baz = 42;
alert(baz);
</script>
file_put_contents
Çağrı şey yol açmamıştır, sadece bir dosya içine "+ foo +" yazdı. <?php echo 42; ?>
Çağrı bu kod eskiden noktada artık çıkışı "42", sonuçlandı.
Sonuçta ortaya çıkan bu HTML / JavaScript kodu artık istemciye gönderilir ve burada değerlendirilir. alert
Ederken çağrı işleri foo
değişken yerde kullanılmaz.
İstemci JavaScript'ten herhangi birini yürütmeye başlamadan önce tüm PHP kodu sunucuda yürütülür. Yanıtta JavaScript'in etkileşimde bulunabileceği PHP kodu kalmadı.
Bazı PHP kodlarını aramak için, istemcinin sunucuya yeni bir HTTP isteği göndermesi gerekir. Bu, üç olası yöntemden birini kullanarak gerçekleşebilir:
- Tarayıcının yeni bir sayfa yüklemesine neden olan bir bağlantı.
- Verileri sunucuya gönderen ve yeni bir sayfa yükleyen bir form gönderme.
- Bir AJAX bir JavaScript tekniği olduğu istek, (1. ve 2. olacak gibi), ancak mevcut sayfadan ayrılmadan sunucuya düzenli HTTP isteği göndermek için.
İşte bu yöntemi daha ayrıntılı olarak açıklayan bir soru
Ayrıca tarayıcının yeni bir sayfa açmasını sağlamak için window.location
1. veya 2. olasılıkları taklit eden bir form kullanarak veya göndererek JavaScript'i kullanabilirsiniz .
window.open
iframe kullanabilir veya iframe kullanarak sayfa yükleyebilirsiniz.