Çoklu CFSELECT ve BIND Kullanımı
Gönderen : Candan Bilecen (4:00 PM)
0 yorum - Kategori : Coldfusion | Javascript | Ajax | HTML

Çoklu CFSELECT ve BIND Kullanımı : Diğer adıyla dropdownlist sık sık kullandığımız bir başka nesne özellikle birden fazla içeriğin birbirine bağlı olduğu zamanlarda bu cfselectlerin birbirlerini tetikler biçimde çalışması kullanıcıya büyük zaman ve kolaylık kazandırır.Birbirine bağlı iki cfselect yapalım birinde kullanicinin adi olsun diğeride kullanıcın adına göre şehrini göstersin..
clientside.cfm sayfamızı oluşturalım..
<head>
</head>
<body>
<cfform name="mycfform">
<!---
selectlerimizi oluşturuyoruz oluştururken bindFcns sayfasındaki fonksiyonlardan bilgileri alıcaz burda dikkat etmemiz gereken şey sehir selectini bind ederken kullaniciyi fonksiyona gönderiyor olmamız ve kullaniciyi bind ederken sadece sayfa yüklenirken..
--->
<cfselect name="kullanici" bind="cfc:bindFcns.kullaniciAl()" bindonload="true">
<option name="0">--kullanici--</option>
</cfselect>
<cfselect name="sehir" bind="cfc:bindFcns.sehirAl({kullanici})">
<option name="0">--Sehir--</option>
</cfselect>
</cfform>
</body>
Şehir ve kullanici listesini alacağımız bindFcns.cfc sayfamızı oluşturalım.Bu sayfada sehir ve kullanici adında iki adet dizi oluşturup geri göndermek sehir dizimizin verilerini kullanici selectinden gelen verilere göre düzenliyicez.
<cfcomponent bindingname="bindFcns">
<cffunction name="kullaniciAl" access="remote">
<cfset kullanici = arraynew(2)>
<cfset kullanici[1][1] = "0">
<cfset kullanici[1][2] = "--Kullanıcı--">
<cfquery name="kullanicilar" datasource="cfArtGallery">
select firstname, artistId from artists
</cfquery>
<cfset i=1>
<cfloop query="kullanicilar" endrow="5">
<cfset kullanici[i+1][1] = kullanicilar.artistid>
<cfset kullanici[i+1][2] = kullanicilar.firstname>
<cfset i++>
</cfloop>
<cfset i=0>
<cfreturn kullanici>
</cffunction>
<cffunction name="sehirAl" access="remote">
<cfargument name="kullanici" displayname="kullaniciId" required="yes">
<cfset var sehir = arraynew(2)>
<cfset sehir[1][1] = "0">
<cfset sehir[1][2] = "--Sehir--">
<cfquery name="sehirler" datasource="cfArtGallery">
select * from ARTISTS where ARTISTID = #kullanici#
</cfquery>
<cfset a=1>
<cfloop query="sehirler" endrow="5" >
<cfset sehir[a+1][1] = sehirler.ARTISTID>
<cfset sehir[a+1][2] = sehirler.STATE>
<cfset a++>
</cfloop>
<cfset a=0>
<cfreturn sehir>
</cffunction>
</cfcomponent>
clientSide.cfm sayfasında bahsettiğim kurallara göre fonksiyonlar çağrılıp dizilere veriler atandıktan sonra selectlere geri döndürülecek ve listeler oluşacaktır.Bu örneğimizde kullanılmaya hazır..






