Javascript, istemci tabanlı, oldukça kullanışlı bir script dili. Php ile yapamayacağımız bazı işlemlerde javascript kullanıyoruz. Ancak bazen javascript ile php arasında değişken veya bilgi alışverişinde bulunulmasını sağlamamız gerekebiliyor. İkisi arasında ortak değişken kullanımı normalde imkansız. Yani bir php değişkenini bir javascript değişkeniymiş gibi kullanmanıza imkan olmadığı gibi tersi de imkansız.
Ancak dolaylı yollarla bunu sağlamamız mümkün. İlk önce daha basit olduğu için javascripte phpden veri aktarmanın yolunu bir kod örneği üzerinde görelim :
<script language="javascript">
alert("<?php echo $phpdegiskeni; ?>");
</script>
Yalnız yukarıdaki örnekte, scriptin bir php sayfası tarafından oluşturulduğuna dikkat edelim.
Şimdi gelelim asıl sorunumuza. Javascriptten phpye veri aktarma sorununa yani. Bunu ajax ile gerçekleştirmek mümkün. Ancak sırf bir değişkeni aktarmak için ikide bir ajaxı devreye sokmak pek mantıklı değil. Bunun yerine javascriptin navigate metodundan yararlanacağız ve phpnin get metoduyla javascriptten veri almasını sağlayacağız. ( Navigete firefoxta çalışmadı bu yüzden locationu değiştirelim ) Bunu yine kısa ve basit bir örnek üzerinde görelim :
<script language="javascript">
var javascriptdegiskeni = "Ben, javascript değişkeni içindeki veriyim.";
window.location = "verial.php?veri=" + javascriptdegiskeni;
</script>
verial.php dosyasında bulunması gereken kod :
<?php
if (isset($_GET['veri'])){
echo $_GET['veri'];
}
?>
isset fonksiyonu ile böyle bir verinin gelip gelmediğini kontrol ettik. Böylece isterseniz her iki kodu da aynı sayfa içinde yazabilirsiniz. Bu yöntem bazen çok kullanışlı olabiliyor, bu sadece küçük bir örnek...
Okunma Sayısı: 1078
Yayınlanma Tarihi: 22 Haziran 2009 Pazartesi - 17:55
Anahtar Kelimeler: javascript, istemci, php, değişken, script, veri, aktarma, akarma
Yorumlar ( 8 )
rasim#1
14/11/2009, 20:39
hocam bunu post ile nasıl göndeririz
Hüseyin Atasoy#2
14/11/2009, 22:43
Yazıda bahsetmemişim ama post ile göndermek te mümkün. Şöyle:
-------------------------------------------------------------------------------------
<html>
<body onload="degiskengonder();">
<form id="Form1" method="post" action="verial.php" enctype="multipart/form-data">
<input id="degiskenicin" type="hidden" value="">
</form>
<script language="javascript">
function degiskengonder()
{
var javascriptdegiskeni = "Ben, javascript değişkeni içindeki veriyim.";
document.getElementById('degiskenicin').value = javascriptdegiskeni;
document.getElementById('Form1').submit();
}
</script>
<body>
</html>
-------------------------------------------------------------------------------------
Dikkat edilmesi gereken tek nokta şu; getElementById() fonksiyonu, html dökümanının yüklenmesi tamamlandıktan sonra doğru elemanı döndürür. Aksi halde NULL(boş) değer döner. Bu yüzden yapılacak herhangi bir işlemin onload olayından sonra yapılması gerekir...
albayoneil#3
05/12/2009, 15:05
Kardeş çook teşekkür ederim. Bu kodu bu kadar basit yazıldığını şimdi sizden gördüm.Uzun bir zaman bu aktarmayı uzun yol ile sağlıyordum
ahmet taha#5
05/01/2010, 13:32
hocam çok teşekkür ederim javascript ile veri gönderme işini bir türlü yapamamıştım
çok sağolun
Murat#7
31/07/2010, 20:18
mysql veritabanında bulunan bir veriyi bir javascript dosyasının içindeki bir fonksiyonda if-else yapısı içinde kullanmak istiyorum.Yardımcı olursanız sevinirim.
Hüseyin Atasoy#8
31/07/2010, 22:17
Tam olarak ne yapmak istediğiniz bilmiyorum ama ajax ile mysql veritabanından veri alan bir dosyaya çağrıda bulunup, javascript fonksiyonlarında kullanmak üzere veri çekebilirsiniz.
Yorum/Görüş Bildir