AJAX & Hazır Kütüphaneler eburhan
3. cevapKaydet.php dosyasını hazırlayalım
Şimdi de cevapKaydet.php dosyasındaki kodlara göz gezdirelim. Bu dosyaya POST edilen 2 tane bilgi var. Bunlar soru no ve cevap türü bilgileri. Soru no hangi sorunun oylandığını bildirirken, cevap türü de kişinin Evet cevabını mı yoksa Hayır cevabını mı verdiğini öğrenmemizi sağlıyor.
-
<?php
-
// Gelen bilgileri al
-
$cevapTuru = $_POST['cevapTuru'];
-
$soruNo = $_POST['soruNo'];
-
-
// Veritabanına bağlan
-
-
// Oylamayı cevap türüne göre kaydet
-
if( $cevapTuru == 'e' )
-
{
-
$sql = "UPDATE oylama SET evet = evet + 1 WHERE no = $soruNo";
-
}
-
else
-
{
-
$sql = "UPDATE oylama SET hayir = hayir + 1 WHERE no = $soruNo";
-
}
-
?>
3. ve 4. satırda bu dosyaya gönderilen bilgileri alıyoruz. 7. satırdan itibaren veritabanına bağlanıyoruz. 12. satırdan sonra ise cevap türüne göre veritabanındaki "oylama" tablosunu güncelliyoruz. Eğer kullanıcı Evet linkine tıkladıysa, sorunun tablodaki Evet alanını 1 arttırıyoruz. Aynı şekilde Hayır linkine tıklandıysa da tablodaki Hayır alanını 1 arttırıyoruz.
cevapAl.php ve cevapKaydet.php dosyalarımız hazır olduğuna göre geriye bir tek index.php dosyamızı hazırlamak kaldı. Fakat ondan önce alttaki şemaya bir gözatalım isterseniz.

Resim 4
Şemaya bakarsak, index.php dosyasından cevapKaydet.php dosyasına $soruNo ve $cevapTuru olmak üzere iki değişken gönderiyoruz. Bu değişkenleri alan cevapKaydet.php dosyası, gerekli işlemleri yaparak bilgileri veritabanına kayıt ediyor. Bu işlemlerden sonra index.php dosyasına geri dönmüyor. O yüzden şemadaki oklar tek yönlü.
index.php dosyasından cevapAl.php dosyasına ise yalnızca $soruNo değişkenini gönderiyoruz. Bu değişkenden gelen veriye göre cevapAl.php dosyası veritabanından gerekli bilgileri alıyor. Bilgileri biçimlendirdikten sonra çıktıyı index.php dosyasına geri dönderiyor.
Artık yaptığımız oylama sistemi iyice kafanızda canlanmış olmalı. Hadi son olarak index.php dosyasını da hazırlayalım.
Toplamda 9846 kez okunmuş.
Şu an 1 kişi okuyor.
En fazla 6 kişi aynı anda okumuş.
Bugün 0 kez okunmuş.
Etiketler: ajax, css, javascript, kütüphane, orta, php, prototype, veritabani
Trackback Yorumları takip et Baskı Önizleme

(32 oy, ortalama 3.97)
# ismailaltuntas | 10 Haziran 2007, 10:11
Güzel makale olmuş tebrikler…
# eburhan | 10 Haziran 2007, 10:22
Bu uygulamayı temel alarak şunun gibi web sitelerini rahatça yapabilirsiniz.
http://www.evet-hayir.com/
http://www.left-or-right.com/
# grkn | 10 Haziran 2007, 11:06
başarılı bir makele eburhan, teşekkürler ve tebrikler.
# Erdem | 10 Haziran 2007, 19:03
Peki bu uygulamayı nasıl döngü içine sokacağız? mesela forech döngüsüyle veritabanından alınan sırasıyla yazılar var tek sayfada ve bunlara nasıl ekleyeceğiz? id si 1 den başlayıp 5 kadar giden tek sayfada farklı makaleler diğelim. hepsinin ayrı ayrı oylaması olacak.
# bgoral | 11 Haziran 2007, 10:23
Merhaba,
Kendi kütüphanemizi yazalımmı, yazarsak ne kazanırız. Ne kaybederiz? Niye herkesin ajax kütüphanesi var, kurallar belli değilmi, niye hergün kütüphane çıkıyor? Hepsi gerçekten birbirinden farklımı.
Makaleniz güzel tebrikler, ancak bence bu sitede daha ziyade örnek uygulamalar vermek yerine, teknolojik gelişmeler paylaşılıp tartışılmalı. Mesela,
1. google gears ve client caching nedemek, gereklimi,
2. grease monkey’e millet neden kasıyor. sadece hack amaçlımı.
3. Scripletler gereklimi, neden gerekli, ne demek bu scriptlet.
4. Flex diye bişey var, caching, proxying, veya xmlhttp layeri olarak kullanılıyor, eskiden kullanılan flash yerine. Niye bu adamlar bunları kullanıyor. XmlHttpRequest neden yetmiyor.
5. Ajaxta serverside ne olmalı. RoR,Python, Php,lisp,java,perl hangisi neden önemli neden önemsiz. Hangisi kullanılabilir. Php bazı uygulamaları yapmak için neden yeterli değil, yetersiz olduğu noktalar neler.
6. AjaxTr prototype, jquery, mootools, dojo extensionlarımızı paylaştığımız bir yer olsunmu gibi
Umarım çok şey istemiyorumdur, ama bence şu öğrenme ve öğretme modundan çıkıp, tartışma ve paylaşma moduna geçersek bu konuda çok hızlı ilerleriz.
Bir de bir link vermek istiyorum. ben tüm videoları izlemedim ama eminim izleyip javascript konusunda bir çok yanlışımızdan kurtulabiliriz.
http://video.yahoo.com/video/profile?sid=33385
Teşekkürler.
# eburhan | 11 Haziran 2007, 13:10
@bgoral
Bu tartışmalar için zaten bir “tartışma grubu” mevcut. Buradan ulaşabilirsin. Bu grupta istediğin gibi tartışma açabilirsin.
# orhan | 12 Haziran 2007, 15:30
Ellerine sağlık @eburhan, gerçekten bu kadar teorik bilginin üzerine enfes bir uygulama olmuş, tebrikler.
# Murat | 13 Haziran 2007, 10:50
Erdem’in sordugu soruyu soracaktim ben de. Bu ajax ile birden fazla oylanabilen anketi nasıl gösteririz?
# Hasan | 15 Haziran 2007, 21:45
Tşekkürler gerçekten güzel bir makale olmuş.
# Ahmet Eyüp ARTIR | 17 Haziran 2007, 12:59
elinize sağlık , çok faydalı olacağına eminim…
# yakuter | 17 Haziran 2007, 17:20
@murat ve Erdem, bahsettiğiniz konuyu ancak kod ile açıklayabiliriz ki bu da yorumlarla olacak şey değil. Ajax Nedir e-posta grubunda dilediğiniz gibi görüşebiliriz
@bgoral, yorumun için çok teşekkürler. Aslında biz hem öğretmek hem de paylaşmak istiyoruz. Sonuçta bilgi olmadan tartışma olmaz. Siteyi kurarken ilk amacımız AJAX konusunu öğretmek ve örnekler, uygulamalar sunmaktı. Sonradan gördük ki bu konuyu enine boyuna tartışmak da gerekli fakat eburhan ve ben malesef bu hıza yetişemiyoruz. Bir makaleyi yazmak bile 2 saati bulabiliyor.
Benim stajım Erhan’ın da sınav stresi bitsin, bakacağız duruma
# Harun | 26 Haziran 2007, 19:40
Güzel makale elinize sağlık
# Emre | 10 Ekim 2007, 12:45
Merhaba
gerçekten güzel bir makale ancak localhost um da deniyorum ve veritabanından sadece 1 id numaraları soruyo çekiyor 1 den sonrakiler ekrana gelmiyor sorun bende mi acaba
# Yusuf Bekar | 28 Aralık 2007, 19:34
Asp olarakda cevirdim
Default.asp
____________________________________
Oyla v1.0 ( Professional Web Developer Mc YuSuF)
Event.observe(window, ‘load’, aktifOylama, false);
function aktifOylama()
{
cevapAl(1);
}
function cevapKaydet(cevapTuru, soruNo)
{
$(’cevap’).innerHTML = ‘Oy kaydediliyor …’;
var myAjax = new Ajax.Updater(
‘cevap’,
‘Kaydet.asp’,
{
method: ‘post’,
parameters: ‘cevapTuru=’ + cevapTuru + ‘&soruNo=’ + soruNo,
onComplete: aktifOylama
});
}
function cevapAl(soruNo)
{
$(’kapsayici’).innerHTML = ‘Sonuç alınıyor …’;
var myAjax = new Ajax.Updater(
‘kapsayici’,
‘Cevap.Asp’,
{
method: ‘post’,
parameters: ’soruNo=’ + soruNo
});
}
__________________________________________
Cevap.asp
________________________________________________
0 Then
EvetYuzde = int((Evet / Toplam) * 100)
HayirYuzde = int((Hayir / Toplam) * 100)
Else
EvetYuzde = 0
HayirYuzde = 0
End IF
%>
);” title=” kisi”>
EVET (%)
);” title=” kisi”>
HAYIR (%)
_____________________________________________
kaydet.asp
_____________________________________________
Set Conn=Server.CreateObject(”Adodb.Connection”)
Conn.Open “Provider=Microsoft.Jet.oleDb.4.0;Data Source=” & Server.Mappath(”Db.mdb”)
Turu = Request.Form(”cevapTuru”)
SoruID = Request.Form(”soruNo”)
IF Turu=”e” Then
Conn.ExeCute(”Update Sorular Set Evet = Evet + 1 Where ID=”&SoruID&”")
Else
Conn.ExeCute(”Update Sorular Set Hayir = Hayir + 1 Where ID=”&SoruID&”")
End If
___________________________________________________
veritabanı Acces
Tablo adı : Sorular
Sütün adı Türü
ID otomatik sayı
Soru not
Evet sayı
hayır sayı
kolay gelsin
# Cem | 20 Şubat 2008, 22:52
cok güzel bir calisma Allah razi olsun. Yalniz Erdem’in sordugu soruyu ben de tekrar dile getirmek istiyorum : “bu uygulamayi nasil döngü icine sokacagiz?”
sevgili yakuter, Ajax Nedir e-posta grubunda, konunun aciklanabilecegini yazmisti ancak orada da arastirmalarima ragmen, ne yazik ki bu konuyla ilgili bir bilgi bulamadim. yardimci olabilirseniz cok sevinirim.
kolay gelsin