Bir bilgisayar mühendisi için programlama dili, öğrendiklerini sınadığı, deneyler yaptığı bir laboratuardır ve mühendisler deneylerini, kestiremedikleri sonuçları gözlemlemek için değil, öngördükleri sonuçları doğrulamak için yaparlar...
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ı, navigate metodunu kullanmak yerine location'ı değiştirebilirsiniz. ) 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...
Yayınlanma Tarihi: 22 Haziran 2009 Pazartesi - 17:55
Anahtar Kelimeler: javascript, istemci, php, değişken, script, veri, aktarma, akarma
Yorumlar ( 14 )
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.
Halil KETREZ#9
12/11/2010, 09:51
Merhaba Hocam;
Elinize sağlık gerçekten çok açıklayıcı bilgiler vermişsiniz...
Konu hakkında ne kadar uzman olduğunuz ortada...
Yapamadığım bir olay var.
Veri tabanındaki zaman bilgisini alıp o zaman gelene kadar geri sayım yaptırıp o zaman geldiğinde tekrar veri tabanına veri işlemem gerekiyor.
Bu arada bir buton olacak her basıldığında geri sayım sayacı 30 sn artacak. (Bunlar javascript)
Sanırım arkada çalışan bir php dosyası olacak javascript kodlarının olduğu sayfadan o sayfaya veri gönderilecek o sayfada veri işlenip tekrar sonuç alınacak.
Küçük bir örnek gösterirseniz çok memnun olurum hocam...
İlginiz için çok teşlekkür ederim...
Hüseyin Atasoy#10
20/11/2010, 08:02
Örnek pek küçük olacağa benzemiyor :) Zaman bulursam bir örnek yollarım.
cenk sanal#11
11/04/2011, 05:26
hocam bunu <input type="file" ... içinde yapabiliyor muyuz?
ben beceremedim
normalde forum böyle:
<form action="uploadfile.asp" method="post" enctype="multipart/form-data">
<input type="file" name="file1" />
<input type="submit" value="Upload" name="submit">
</form>
yazdığınız şekilde uyarlamaya çalıştım beceremedim galiba
<body onload="degiskengonder();">
<form name="Form1" action="uploadfile.asp" method="post" enctype="multipart/form-data">
<input id="degiskenicin" type='file' name='file1' value=''>
</form>
<script language="javascript">
function degiskengonder()
{
var javascriptdegiskeni = "C:\resim.jpg";
document.getElementById('degiskenicin').value = javascriptdegiskeni;
document.getElementById('Form1').submit();
}
</script>
yardımcı olursanız çok sevinirim
Hüseyin Atasoy#12
11/04/2011, 09:00
Güvenlik sebebiyle buna izin verilmiyor. Düşünsenize, bir internet sitesini açıyorsunuz ve sayfa siz ne olduğunu anlayamadan size ait bir dosyayı kendi sunucusuna çekiyor. Bu gerçekten bir güvenlik problemi olurdu.
cenk sanal#13
12/04/2011, 00:18
ilgilendiğiniz için teşekkür ederim hocam
Bason#14
14/12/2011, 00:10
Gerçekten çok teşekkürler 2 gündür uğraştığım java script sorununu sizin sayenizde düzelttim.
Yorum/Görüş Bildir