Php de jQuery Yardımıyla Veri Post Etme

Tarih: Ekim 12th, 2008 | Yazar: Ertuğrul Erkan | Kategori: Javascript, Php | Etiketler: , , , , , , , , , , , | 5 Yorum »

Merhaba arkadaşlar. Şu sıralar yeni yeni başladığım jQuery hakkında benimde uğraştığım bazı problemlerin çözümlerini sizinle paylaşmak istedim. Öncelikle Ajax teknolojisi sayesinde nasıl sayfa yenilenmeden veri yollanılır onu göstereceğim. Bu dersimizde Web 2.0 şartlarına uygun olarak islem.php yi içeride çalıştırıcaz. Ayrıca sürekli veri yollayarak yapılan flood için de bir koruma yöntemi yapacağız.

Öncelikle verilerimizi hangi yöntemle yollacağız onu bilmeliyiz. Ben post methodunu kullanacağım. Çünkü get methodu şu an için bize gerekli değil. Yapacağımız örnekte veriler yorumekle.php den islem.php ye post edilecek. Sayfamız hiç yenilemeden verilerimiz mysql e eklenecek.

İlk yapmamız gereken bir form düzeni kurmak. Ben bir nick birde yorum adlı iki tane metin alanı yarattım. Bu işlemden sonra jQuery kütüphanesini içeride açmamız lazım. < title > etiketinin hemen altına şu kodu koyalım;

< script type="text/javascript" src="http://code.jquery.com/jquery-latest.pack.js">< /script>

Böylece kodlarımız çalışacaktır. Hemen altınada asıl kodlarımızı koyalım;

< script type="text/javascript">
$(document).ready(function(){
$(':submit').click( sonucAl );
});

function sonucAl()
{
$(‘#sonuc’).html(‘hesaplaniyor…’);

$.ajax({
type: ‘POST’,
url: ‘yorumekleislem.php’,
data: $(‘form’).serialize(),
success: function(ajaxCevap) {
$(‘#sonuc’).html(ajaxCevap);
}
});
return false;
}
< /script>

Şimdi arkadaşlar ( yeni başladım hatam varsa affedin :) ) Sayfamız hazır olunca :submit yani butona tıklayınca div id si sonuc olan yere hesaplaniyor yazıyor. işlem de bu sırada yapılıyor. işlemimiz de ilk önce type ile methodu seçiyoruz. Ondan sonra hangi adrese yollanacağını…

Şimdi arkadaşlar burada jQuery in bir fonksiyonunu görüyoruz. Serialize methodu ile aynı get gibi veriler sıralanıyor. Yani bizim nick ve yorum adlı metin alanlarımızı bu hale getiriyor; nick=orayayazilan&yorum=orayayazilan. Bu method sayesinde de Php verileri algılayabiliyor.

Gerisinde islem.php den echo ile yazılanlar çekiliyor. yorumekle.php sadece bu kadar. islem.php de aynen bizim form dan verileri alır gibi düzenleniyor;

$nick = $_POST["nick"];
$yorum = $_POST["yorum"];

Gerisinde işe işlemler yer alıyor. Tabi ki her işlemden sonra da ne olduğunu ekrana basıyoruz;

echo “İşlem tamam”; veya echo “Hata var”;.

Buraya kadar kodlama tamamlandı. Birde yorumekle.php nin uygun bir yerine;

< div id=”sonuc”>< /div>

Bu kodu yerleştiriyoruz ki islem.php den alınan sonuçlar ekrana basılabilsin. Eğer bu işlemleri yaparsanız yorumekle.php den yollanan veriler islem.php de aynı sayfa içerisinde yorumlanabiliyor. Böylece yeni bir sayfaya yönlendirilmiyor.

Bu yöntem ile flood açığı meydana geliyor. Kişi sürekli bir veriyi yollamak için submit yaparsa veriler defalarca ekleniyor. Buna basit bir şekilde karşı gelebiliriz. Kişi butona basınca buton deaktif oluyor. Böylece bir daha işlem görmüyor. Bunuda;

< input type=”submit” name=”Submit” id=”gonder” value=”Gönder” onclick=”this.disabled=true; />

diyerek halledebiliriz. Evet arkadaşlar güzel bir makale oldu :) Bir diğer yazımda görüşmek üzere, hoşçakalın…

İyi günler, iyi çalışmalar…

Benzer Yazılar;


“Php de jQuery Yardımıyla Veri Post Etme” yazısında 5 Ahkam var.

  1. 1 Bosphorus 01:20 on Temmuz 1st, 2009 anında kesmiş:

    Merhaba Ertuğrul, Güzel Makale Ellerine Sağlık. Ayrıca Sitenin Tasarımı Da Güzel …

  2. 2 EeTr 15:01 on Temmuz 1st, 2009 anında kesmiş:

    Merhaba. Ben teşekkür ederim bizi takip ettiğiniz için :) Birçok tasarımdan sona en son buna geçtik. Çok olumlu tepkiler aldık. Sonunda kendi temamızı bulduk diyebilirim :) .

  3. 3 resul deger 13:02 on Aralık 24th, 2009 anında kesmiş:

    selamlar hocam.
    sizin yapmış oldugunuz olay post atıyor ama bir değer atamıyor? bu konuda bi fikriniz var mı?

  4. 4 Ertuğrul Erkan 15:31 on Aralık 24th, 2009 anında kesmiş:

    @Resul;

    Bütün örnekleri önce kendim denerim. Burada “form” seçiliyor. Belki de sizin form adınız başka (form1 vs). O yüzden veri gitmeyebilir.

  5. 5 mehmet 16:52 on Haziran 1st, 2010 anında kesmiş:

    güzel ama eksik olmus,ajax kismini aciklamissiniz ama form örnegide verseydiniz yemede yaninda yat olacakti,ben ajaxdan anlamiyorum,simdi form islemlerini nasil yapacam action kismini method kismina ve id kismina ne yazacam,neticede buraya derin derin bakan kisi ajaxdan anlamiyan kisidir bence,genede tsk.ederim


Ahkam Kesme Aparatı