PayPal'a üye olun ve kredi kartı ödemelerini kabul etmeye anında başlayın.
 

CF MX ile Kullanıcı Anketi Oluşturmak

Programlama Makaleleri CF MX ile Kullanıcı Anketi Oluşturmak Programlama hakkında bilgi paylaş; CF MX ile Kullanıcı Anketi Oluşturmak İnternette dolaşırken bir çok sayfada görürüz, bir çok ...
Cevapla
 
Seçenekler
  #1  
Arama 19-11-2007, 08:25
Professionel - ait Kullanıcı Resmi (Avatar)

Yaş: 20
Üyelik Tarihi: 19/11/07
Mesajlar: 468
 
     WS-Ticareti: (0)
Teşekkürleri: 0
10 Msg. 20 Tşkr.
Rep Gücü: 41 Professionel çok çok hoş rep gücü varProfessionel çok çok hoş rep gücü varProfessionel çok çok hoş rep gücü varProfessionel çok çok hoş rep gücü var

CF MX ile Kullanıcı Anketi Oluşturmak

CF MX ile Kullanıcı Anketi Oluşturmak


İnternette dolaşırken bir çok sayfada görürüz, bir çok konuda ziyaretçilerin belli konular hakkındaki görüşlerini yansıtan oylamalar vardır. İşte bu uygulamada da bu tarz bir anket çalışmasının nasıl hazırlandığını anlatacağız. Uygulamamız bittiğinde aşağıda gördüğünüz tarzda bir anket uygulaması hazırlamış olacağız.

1- Öncelikle uygulamamızda kullanacağımız verileri tutacağımız veri tabanını oluşturalım. Ben kendim uygulamayı hazırlarken veritabanı olarak Mysql'i kullandım. Ancak MS Access versiyonunuda kaynak kodlara ekledim. Veritabanımızındaki kullanacağımız tablonun adını cf_anket olarak belirledik ve bu tabloda kullanmak için 9 sütun oluşturduk. İlk 4 sütun anketimize verilen oyların sayısal değerlerini tutan secim1-secim2-secim3-secim4 adlı sütunlar (veri tipi sayı), sonraki 4 sütun ankette ki seçeneklerimizi barındıran secenek1-secenek2-senecek3-secenek4 (veri tipi metin)adlı sütunlar vesonuncu sütunda anketimizdeki sorumuzu barındırmakta olan baslik (veri tipi metin, Mysql için text MS Access için not) adlı sütun bulunmakta.

Daha sonra ColdFusion MX'in Administrator panelinden yeni bir veri kaynağı (data source) ekleyelim. Admin sayfasını açalım ve sol tarafraki linklerden Data & Services altındaki Data Sources linkini seçelim. Daha sonra sağ bölümde açılan alandaki Add New Data Source altındaki forma veri kaynağımızın adını ve tipini belirtelim.




Ben Mysql veri tabanı kullandığım için Driver alanında seçimimi bu şekilde yaptım. Eğer siz MS Access kullanacaksanız buradaki seçiminizi açılır listeden Microsoft Access
yapmalısınız.

Add butonuna tıkladığınızda veri kaynağının eklendiğini sayfanın alt bölümündeki Connected Data Sources bölümünde görebilirsiniz.



Veri tabanımızı oluşturduğumuza ve ColdFusion'a tanıttığımıza göre uygulama için kodlarımız yazmaya başlayabiliriz.

2- Öncelikle anketimizdeki soruları gösterecek ve oy vermemizi sağlayacak anket.cfm isimli sayfamızı oluşturacağız.
İlk olarak kullanıcının daha önce ankete oy verip vermediğini kontrol edelim.

<cfif not isdefined("COOKIE.anket")>

Bu satır kullanıcı ankete oy verdikten sonra oluşturulan çerezin kullanıcı bilgisayarında olup olmadığını kontrol eder. Yok ise bir kullanıcıya göstereceğimiz verileri veritabanımızdan alalım.

<cfquery name="Secenekler" datasource="anket"> SELECT secenek1, secenek2, secenek3, secenek4, baslik FROM cf_anket </cfquery>

Anketimizin içerdiği soruyu ve seçeneklerimizi veri tabanından çektikten sonra kullanıcıların oy verebilmesi için bir form oluşturarak bilgileri bu formun içinde gösterlim.

<form action="anket_isle.cfm" method="post">
<table width="300" border="0" >
<tr>
<td colspan="2"><strong>Anket</strong></td>
</tr>
<cfoutput>
<tr>
<td colspan="2" >#Secenekler.baslik#</td>
</tr>
<tr>
<td width="170" >#Secenekler.secenek1#</td>
<td width="130"><input name="secim" type="radio"
value="1"></td>
</tr>
<tr>
<td >#Secenekler.secenek2#</td>
<td><input name="secim" type="radio" value="2"></td>
</tr>
<tr>
<td class="secenek">#Secenekler.secenek3#</td>
<td><input name="secim" type="radio" value="3"></td>
</tr>
<tr>
<td >#Secenekler.secenek4#</td>
<td><input name="secim" type="radio" value="4"></td>
</tr>
<tr>
<td colspan="2"><input name="Submit" type="submit"
value="gönder"></td>
</tr>
</cfoutput>
</table>
</form>


Bir form oluşturduk ve içine her satıra bir secenek ve karşısına bir radio buton gelecek çekilde tablomuzu olşturduk. Kullanıcı bu radio butonlardan birini seçerek anketimize oy verecek. radio butonlarımızın hepsinin ismi aynı secim ancak değerleri yani value özellikleri veri tabanından sectiğimiz seceneğe göre değişmekte. secenek1'e karşılık gelen radio butonun value değeri 1, ve diğerleri içinde bu şekilde devam ediyor. kullanıcı secenek1'e ait radio butonu seçim oy verdiğinde veritabanında ki secenek1'e ait secim1 değeri 1 artacaktır.

Kullanıcı eğer daha önce anketimize oy vermiş ise direkt olarak kullanıcıya anketimizin sonuçlarının görüntülendiği sayfayı gösterlim

<cfelse>
<cfinclude template="anket_sonuc.cfm">
</cfif>


3- Kullanıcı seçeneklerden birini işaretleyerek gönder butonuna tıkladığında formumuz sayfayı anket_isle.cfm sayfasına yönlendirmekte. Bu sayfada kullanıcının işaretlediği seçeneğe karşılık gelen değer bir arttırılır. Örnek olarak, kullanıcı secenek4'e ait radio butonu işaretledi ve gönder butonuna tıkladı, anket_isle.cfm sayfası kullanıcın bu seçimini algılayarak sececek4'e ait secim4 değerini 1 arttıracaktır.

<cfquery datasource="anket">
UPDATE cf_anket SET
<cfif FORM.secim is 1>
secim1 = secim1 + 1
<cfelseif FORM.secim is 2>
secim2 = secim2 + 1
<cfelseif FORM.secim is 3>
secim3 = secim3 + 1
<cfelseif FORM.secim is 4>
secim4 = secim4 + 1
</cfif>
</cfquery>


Basit bir cfif yapısı ile kullanıcının seçimine karşılık gelen sütununun değeri bir arttırılır. Daha sonra kullnıcının anketimize oy verdiğini anlamak ve sonuçların şişmesini önlemek amacıyla kullanıcının bilgisayarında bir çerez oluştururuz.

<cfcookie name="anket" value="#Now()#" expires="7">

Daha sonrada kullanıcıyı anketin sonuçlarının görüntülendiği anket_sonuc.cfm isimli sayfaya yönlendiririz.

<cflocation url="anket_sonuc.cfm">


4- Son olarak anket sonuçlarımızın görüntülendiği anket_sonuc.cfm isimli sayfayı oluşturacağız. Bu sayfadaki kodumuz veritabanındaki seçeneklere ait değerleri çekerek toplam oy miktarını hesaplamakta. Daha sonra her seceneğim bu toplam içindeki yüzdelik dilimini hesaplamak için seçeneklerdeki sayısal değerleri 100 ile çarpıp ardından toplam değerine bölerek sonuca ulaşmakta. Basit bir matamatiksel hesap yapacağız.

<cfquery name="anketGoster" datasource="anket">
SELECT * FROM cf_anket
</cfquery>
<!--- anketteki toplam oy sayısını buluruz --->
<cfset toplam = anketGoster.secim1+anketGoster.secim2+anketGoster.
secim3+anketGoster.secim4>
<!--- daha sonra her seçeneğe ait yüzdeyi hesaplarız --->
<cfset secim1yuzde = (anketGoster.secim1 * 100) / toplam>
<cfset secim2yuzde = (anketGoster.secim2 * 100) / toplam>
<cfset secim3yuzde = (anketGoster.secim3 * 100) / toplam>
<cfset secim4yuzde = (anketGoster.secim4 * 100) / toplam>


Seçeneklermize ait yüzdeleri birer birer hesapladıktan sonra kullanıcıya anketimizin sonuçlarını küçük bir grafiği bar olarak kullanarak gösterlim.

<cfoutput>
<table width="350" border="0">
<tr>
<td colspan="2"><strong>Anket</strong></td>
</tr>
<tr>
<td colspan="2">#anketGoster.baslik#</td>
</tr>
<tr>
<td width="170">#anketGoster.secenek1#</td>
<td width="170"><img src="bar.gif" width="#secim1yuzde#" height="10"> <span class="prg">% #Round(secim1yuzde)#</span></td>
</tr>
<tr>
<td>#anketGoster.secenek2#</td>
<td><img src="bar.gif" width="#secim2yuzde#" height="10"> % #Round(secim2yuzde)#</td>
</tr>
<tr>
<td>#anketGoster.secenek3#</td>
<td><img src="bar.gif" width="#secim3yuzde#" height="10"> % #Round(secim3yuzde)#</td>
</tr>
<tr>
<td>#anketGoster.secenek4#</td>
<td><img src="bar.gif" width="#secim4yuzde#" height="10"> <span class="prg">% #Round(secim4yuzde)#</span></td>
</tr>
<tr>
<td colspan="2" ><div align="right">Toplam <strong>#toplam#</strong> oy kullanılmıştır.</div></td>
</tr>
</table>
</cfoutput>


Burada kullandığımız Round(secim3Yuzde) şeklindeki ifade toplamda kalanlı çıkan sonucu yuvarlak olarak göstermemizi sağlamakta. Örneğin secim3Yuzde 'nin değeri 15,3347 ise bu değeri 15 olarak göstermekte kullanmış olduğumuz Round() fonksiyonu.

Bu şekilde anket uygulamamızı bitirmiş olduk. Tekrar görüşmek dileğiyle güle güle kullannın
Alıntı ile Cevapla
Cevapla


Seçenekler


Benzer Konular
Konu Konu Açanlar Forum Cevaplar Güncel Mesajlar
Dünyanın 7 harikası anketi W-S Webmaster Genel Konular 3 11-07-2008 09:59
Bilgisayar anketi cunobag Geyik - Komik 0 05-07-2008 09:42
Süper kullanıcı olarak da adlandırılan root kullanıcı kadınca İşletim Sistemleri 0 26-12-2007 02:03
Kullanıcı Tanımlama (tr) egitimbilgisi Php kodları 0 30-11-2007 07:39
kullanıcı Rütbeleri Nurullah_ Vbulletin 2 05-10-2007 11:19

Siteye link vermek için alttaki kodu sitenize ekleyin
Ya da kodu Ctrl+C ile kopyalayın
Örnek görünüm: Webmaster Sitesi

Kadınlar blogu ~ Apple iPhone, iPod Touch ( iTouch ) Forum iPhone