Erhan Yakut Software Developer @Binalyze | Founder @Passwall | Golang Enthusiast | Open Sorcerer

En Çok Kullandığım AJAX Fonksiyonu

1 min read

Elimde ne varsa sizinle paylaşmaya devam ediyorum. jQuery ve AJAX ile güçlendirdiğim projelerimde en çok kullandığım fonksiyonu sizlere sunmak isterim.

Bu Javascript fonksiyonunun görevi form verilerini bir dosyaya göndermek ve dosyadan gelen cevaba göre işlem yapmak. Yani bildiğiniz AJAX. Müsadenizle önce kodu göstereyim, sonra kısa bir açıklama yapayım.

[sourcecode language=”js”]function ekle(){

//Form verileri gönderilmek için uygun formata dönüştürülüyor.
var sc = $(‘#yeni_kayit_formu’).serialize() ;

// #ekleniyor isimli div’de "Yükleniyor…" yazısı yazıyoruz.
$(‘#ekleniyor’).html(‘Yükleniyor…’);

$.ajax({
type: "POST",
url: "ekle.php",
data: sc,
success: function(msg){
if (msg=="ok")
{
//Dosyadan gelen cevap "ok" ise #ekleniyor isimli div’e "Kayıt Eklendi!" yazdırıyoruz.
$(‘#ekleniyor’).html("Kayıt Eklendi!");
}
else
{
//Dosyadan gelen cevap "ok" değil ise #ekleniyor isimli div’e gelen cevabı yazıyoruz.
$(‘#ekleniyor’).html( msg );
}
}
});
}[/sourcecode]
Uygulamanıza jQuery kütüphanesini dahil ettikten sonra bu fonksiyonu kullanarak bir PHP dosyasına veri gönderip gelen cevabı değerlendirebilirsiniz. Veri gönderilen PHP dosyası da şöyle olabilir.
[php]<?php
include(‘../../ayar.php’);

// Eğer ismini yazmamışsa $sonuc değişkeni "ok"’den farklı bir değer alıyor.
if ($_POST[‘isim’]==”) $sonuc="Lütfen başlık yazınız.";

if (!$sonuc)
{
$sql = "INSERT INTO kisiler VALUES ($_POST[isim])";
mysql_query($sql);

// Eğer ismini yazmışsa $sonuc değişkeni "ok" değerini alıyor.
$sonuc="ok";
}

// $sonuc değişkenini gönderiyor.
echo $sonuc;

?>[/php]
Yine kodun içinde gerekli açıklama mevcut.

Size kodu göstermek için girdileri en az ve basit seviyede tutmaya çalıştım. Lütfen güvenliği eksik, olmaz böyle şey falan gibi yorumlar yapmayın. Hepsinin farkındayım, farkındayız. Yeter ki konuyu öğrenmeye çalışan arkadaşlar işin mantığını anlasınlar ;)

Not: ytelefon | Yakuter Telefon Defteri Betiği isimli uygulamamda da bu kodun çalışan şeklini görebilir ve uygulamanın kaynak kodlarını indirerek dosyaları inceleyebilirsiniz.

Erhan Yakut Software Developer @Binalyze | Founder @Passwall | Golang Enthusiast | Open Sorcerer

28 Replies to “En Çok Kullandığım AJAX Fonksiyonu”

  1. Bugün bir coşku geldi buraya Erhan, Rss Reader’ımız doldu taştı, mutlu olduk, hep böyle devam :)

  2. Merhaba çalışmalarınızda başarılar diliyorum. Internet üzerinde (ç)alıntılama yöntemi ile kısa sürede popüler olmaye heves edinmiş kişilerin yeterli beyin fonksiyonu gösteremediği bir ortamda fikir üretmek, üretilen fikri başkaları ile paylaşmak ve inatla paylaşıma devam edebilmek son derece önemli. Türk internet ağının web teknikleri konusundaki gelişimi için önemli katkılar sunuyorsunuz. Paylaşımlarınızı ilgi ile takip ediyorum.

  3. Basit ve güzel bir paylaşım. Javascript ve AJAX konusunda hiç bilgim yok diyebilirim. Ama başlangıç için yararlanacağım ilk konu bu olacak…
    Bu tarz yararlı ve temel bilgileri paylaştığın için bende teşekkür ederim.

  4. Merhaba hocam. Makaleniz için çok teşekkür ederim benzer bir şekilde bende fonksiyon yaptım fakat bunu daha protetif hale getirmek mümkün mü? Yani ekle fonksiyonu şu şekile çevirebilir miyiz?;

    $(document).ready( function(){
    $('#giris :submit').click( islem('girisislem.php') );
    $('#kayit :submit').click( islem('kayitislem.php') );
    });

    function islem(adres) {
    url: adres,

    tabi bu kısaltılmış ama mantık olarak böyle birşeyi nasıl yapabiliriz? Ben deniyorum ama sürekli sayfayı yeniliyor.

    1. @Ertuğrul, bunun için birkaç deneme yapmam lazım. Ayrıca yorumlarla bunun cevabını vermek pek mantıklı olmaz. Bir ara makale yazarım ;)

  5. Anladım hocam. Merak etmiştim mantık sorunu nerede diye o yüzden sordum. Eğer ki yapılabilirse çok sağlam ve ufak bir ajax fonksiyonu çıkacak ortaya :)

  6. Bu AJAX zimbirtisini kullanarak başka bir domainden veri almak mumkun degil mi ? Yani;
    $.ajax({
    type: “GET”,
    url: “www.baskadomain.com/baska.php”

    diyemez miyiz ?

  7. hocam birkaç haftadır yana yakalı jquery html vs ne varsa öğrenmeye çalışıyorum sayende çok yol aldım teşekkür ederim. Allah razı olsun.

  8. Fatih Sormuş;
    22 Nisan 2009, 01:23

    Bu AJAX zimbirtisini kullanarak başka bir domainden veri almak mumkun degil mi ? Diye..

    Evet Ajaxla başka domainde veri alamayız.. Ancak PHP cURL file_get_contentsfonksiyonlarıyla aldığımız bilgileri görüntüleyebiliriz ancak… Ajax Javanın derlenmiş halidir..Javascriptin yapabildiğini yapar..

  9. erhan hocam;
    bu yakuter telefon defteri betiğinde vardı, yukarıdaki js fonksiyonunda index.php ye yönlendiriyordu 1sn sonra. setTimeout(“window.location=’index.asp’;”,1000); şeklinde. mesela üye giriş formunda bunu kullanmak istiyorum ancak ben burada yönlendirilen adresi formdan gelecek form elemanından almak istiyorum. bu js kodlarında nasıl bir düzenleme yapmak lazımdır acaba? çok mühim bir konuya cevap olcaktır :)

  10. Selamar;
    Her yerde post get metodlarıyla ilgili işlemler gösterilmiş güzel ama örnegin bir kayıt formu veya login için flood yemeden ,timer gibi aşılır güvenlik kodu gibi hantal yollar dışında neler yapabiliriz.bunun cevabını almadan nasıl uygulamaları yayına sokabiliriz ki?

  11. bunun bir script olmadığını iyice belirtmek lazım bence. mazallah direkt kullanımda xss den yakar adamı. copy paste yaparken dikkat

  12. İlginç birşeyle karşılaştım, yerel sunucuda kayıt düzenlendi – kayıt eklendi gibisinden belirtmelerde bulunurken web sunucusunda sadece ok diyerek yönlendirme işlemini gerçekleştirmiyor js yolları kontrol ettim, kodları inceledim, önbelleği temizleyerek, tarayıcı ayarlarını kontrol ederek denedim ama sorun çözülmedi. Nasıl çözebilirim ?

  13. Ajax Yardık Lütfen

    Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server: LASTROADSQLEXPRESS in C:inetpubvhostslastroad.nethttpdocsincconnection.php on line 8
    Bağlantı sırasında hata oluştu

    Bu hatayı alıyorum Nasıl Düzelte bilirim

  14. Benim bir sorum olucaktı. Benim bitane form'um var value degerinin içine veritabanından çektigim bi degeri giriyorum ve o gözüküyor.Bu value degerini degistirdigimde formda bunu veritabanına tekrar yazmam gerek bununla ilgili yardımcı olabilirmisiniz acaba ajax ı tam olarak bu konuda nasıl kullanmam gerekiyor.

Leave a Reply

Your email address will not be published. Required fields are marked *