Başlangıç > Dökümanlar > PHP ve JavaScript iç içe kullanmak

PHP ve JavaScript iç içe kullanmak

Günümüz internet teknolojisinde inline model kod yazmak ile oop kod yazmak tartışıladursun,asıl ihtiyaç farklı kulvarlarda at koşturan dillerin ortak şekilde geçinmesi birbirleri arasında kayıpsız ve kolay yoldan bilgi transfer edilebilmesidir.

Ajax denilen tekniğin gelişmesi ile birlikte bir çok internet sitesi artık sanki masaüstü programı gibi işlem yapmaya,animasyonlar hızlı yüklemeler ile kullanım kolaylığı oluşturmaya başlamışlardır.

bu tur işlemleri iki farklı kısımda incelemek gerekir,

  1. Kullanıcı tarafında gerçekleşen işlemler,
  2. Sunucu (server) tarafında gerçekleşen işlemler.

eğer çok istisnai durumlar yok ise (wget,flash,java applet,javaFX,silverlight) kullanıcı tarafında gerçekleşen işlemler için javascript temeldir. (buda kendi içerisinde dallanabilir ama istisnai durumlar içerisinde belirttiğim bir çok dil bile tarayıcıya JS kodu derleyip göndermektedir)

siz javascript ve JS kütüphaneleri kullanarak kullanıcı tarafında yani ajax,animasyonlar,etkileşimli tasarım renklendirmeleri gibi kullanım kolaylığı sunacak arabirimi yaparsınız,

sunulacak bilgi ve form değerlerinin işlenerek yeni sonuçlar çıkarma,veritabanı işlemleri gibi derin mevzuları ise sunucu taraflı programlama dilleri ile yaparsınız, bunlar asp ,.net,jsp,php,ruby,python,go olabilir.

peki bir birinden bağımsız ve alakasız iki farklı dili (dillerin) nasıl bir ortak paydada buluşturabiliriz ?

ben burada Php ile Js arasındaki metodlardan bahsedeceğim.

1.Metod : HTML içine gömme metodu.

en çok bilinen uygulanan metod budur, mantığı basittir. php değişkenlerinin jsye aktarılmasında çok etkilidir.
<script type='text/javascript'>
var phpdengelecek = '<?php echo 'php den gelen değişken değeri'; ?>';
alert(phpdengelecek);
</script>

yukarıdaki basit örneği çalıştırdığınızda ekrana bir mesaj kutusu açılacak ve “php den gelen değişken değeri” yazdırılacaktır.

burdaki mantık şudur : javascript kodları kullanıcı tarafında yorumlanır yani html içerisinde gömülü halde gelir,php kodları ise sunucuda yorumlanır ve php’den dönen değerlere göre html kodu şekillenir, kullanıcıya gönderilir.

yukarıdaki kuraldan ortaya çıkacak sonuç , php ile gönderilecek html koduna müdahale edip,js den önce php komutlarını çalıştırabildiğimize göre neden javascript komutlarına ve değişken içeriklerine müdahale edemeyelim ki.

şimdi örneği biraz genişletelim,
kullanıcı adı kadi değişkeni ile querystring’den $_GET metodu ile geliyor biz javascript ile hoşgeldin kullanıcı adı dedirteceğiz, tabiki kullanıcı adı değişken olacak.

<script type='text/javascript'>
alert('Hoş geldin <?php $_GET['kadi']; ?>');
</script>

örneğin çalıştığı sayfa http://localhost/deneme.php olsun biz tarayıcıdan direk olarak http://localhost/deneme.php dosyasını çağırırsak javascript sadece hoşgeldin içerikli bir mesaj kutusu çıkaracaktır. ama biz adresi http://localhost/deneme.php?kadi=kerim_abdül_cabbar şeklinde çağırırsak javascript hoşgeldin kerim_abdül_cabbar şeklinde sonuç döndürüp mesaj kutusu çıkaracaktır.

birinci metodun özeti : javascript dosyası html kodları içinde statik olarak bulunduğu için php ile kolaylıkla yönlenebilir.

2. metod : javascriptten php’ye komut göndermek :
burada iş tam tersine dönüyor, kullanıcı tarafında oluşturulan bilgiler php’ye değişken olarak gönderilecek
eskiden olsa bu iş tam bir ütopya idi ama ajax bu iş için çıkmıştı. ama sadece ajax kendi başına hiç bir işe yaramayabiliyor, çünkü her geçen gün ihtiyaçlar ve hayal gücü genişliyor.

2.metodun birinci kısmı öğren ve gönder kısmı,
bir örnekle açıklamak gerekirse php ile farklı ekran boy ve genişliklerine göre farklı siteler tasarladınız,
php sunucu tarafında olduğu için kullanıcı bilgilerinin hepsine hakim değil işte böyle durumlarda önce javascript ile gerekli bilgileri alıp php yi uygun yönergeler ile tetiklemeniz gerekiyor,
örneğimizi koda dökelim

index.php içeriği
<?php
if(!$_GET["en"] or !$_GET["boy"]){
echo "
<script type='text/javascript'>
var adres = ;
location.href='<?php echo $_SERVER['php_self']; ?>'+'?en="+screen.width+'&boy='+screen.heigh;
</script>
";
exit();
}else{
echo $_GET["en"]." x ".$_GET["boy"];
}
?>

örneği açıklamak gerekirse,
önce index.php dosyamızın yüklenmesi talimatı verildi, eğer $_GET metodu ile (querystring) en ve boy değerleri gelmemiş ise JS yardımı ile en ve boy değerlerini oluşturarak aynı sayfaya bu sefer $_GET metodu ile gerekli değişkenler ile gönderdik. böylelikle javascript değişkenlerini php’ye aktarmış olduk.
aslında biraz taşıma su gibi gözüksede kodlama yaparken bu tür değişkenleri class yüklemelerinden önce kontrol ettirirseniz / ettirirsek gereksiz yüklemelerin önüne geçmiş oluruz.
bu metod hem php’den js’ye aynı zamanda js’den php’ye bilgi aktarılması gereken yerlerde %100 etkilidir. mesela örneğimizi geliştirerek anlatacak olursak js ile ekran en boyunu öğrendip php’ye gönderen, php gelen veriyi işleyip ona göre yönlenme yapan ve sonunda javascript mesaj kutusunda ekran en boy değerini söyleyen bir kod yazalım.
yine index.php

<?php
if(!$_GET["en"] or !$_GET["boy"]){
echo "
<script type='text/javascript'>
var adres = ;
location.href='<?php echo $_SERVER['php_self']; ?>'+'?en="+screen.width+'&boy='+screen.heigh;
</script>
";
exit();
}else{
switch($_GET["boy"){
case "600":
include("in800.php");
break;
case "768":
include("in768.php");
break;}
}
?>
<script type='text/javascript'>
alert('<?php echo $_GET["en"]." x ".$_GET["boy"]; ?>');
</script>

umarım buraya kadar anlattıklarım kafanızda bir şeyleri tetiklemiştir.
gelelim 2.metodun diğer kısmı lan anlık işlem hacmine bu kısım ajax tekniği ile işlem görüyor yani sayfa yenilenmeden sadece belirli bir alanı güncellemek için kullanılıyor.bu kısım ile ajax’ı araştırabilirsiniz.

Reklamlar
Kategoriler:Dökümanlar Etiketler:, , ,
  1. Henüz yorum yapılmamış.
  1. No trackbacks yet.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: