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.
Bugün bir coşku geldi buraya Erhan, Rss Reader’ımız doldu taştı, mutlu olduk, hep böyle devam :)
Ne mutlu bana ki başkalarını mutlu edebilmişim :)
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.
Ajax ‘a yeni başladığım için bu bilgilere ihtiyacım olacak teşk.
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.
Form işlemleri için benim uzun süredir kullandığım form eklentisini de önerebililirim:
http://malsup.com/jquery/form/
Evet bu eklenti de gayet başarılıdır, severim kendisini ;)
Gelen veriyi değerlendirme olayı gerçekten çok güzel. Teşekkürler.
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.
@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 ;)
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 :)
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 ?
Harika bir script teşekkürler.
script değil betik :)
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.
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..
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 :)
Hocam sağolasın paylaşıma devam…
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?
bunun bir script olmadığını iyice belirtmek lazım bence. mazallah direkt kullanımda xss den yakar adamı. copy paste yaparken dikkat
İ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 ?
Usta iyi de bu yöntemle milyonlarca sql injection yersek ne yapacaz !!!
Basit bir mantık. Anladım herhalde. inşallah kendi sitemde de kullanacağım.
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
Bende alıyorum :S
Merhabalar,
url kısmına localde olan bir dosya değil de uzak sunucu üzerindeki bir dosya olsaydı nasıl yapardık bunu? http://www.examples.com/index.php gibi
Böyle yararlı bilgileri paylaştığın için teşekkürler.. Paylaşımlara devam…
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.