BİLİŞİM - BİLGİSAYAR - EĞİTİM
  Veri ile HTML Etiketlerini Doldurma
 

Veri ile HTML Etiketlerini Doldurma

ADO nesnesini tanıdık; metodlarını gördük. ADO’nun veritabanı ile DSN ile ve DSN’siz nasıl bağlantı kuracağını ele aldık. Şimdi çok kısa olarak elde ettiğimiz verilerle, HTML etiketlerinin içini nasıl dolduracağımızı görelim. Burada “içini doldurmak” (veya bir çok İngilizce kaynakta göreceğiniz üzere populate etmek) bir etiketin değer (value) bölümünü yazmak anlamına geliyor). Burada küçük bir kaç örnekle, veri kaynağını kullanarak HTML etiketlerinin içini doldurma alıştırması yapalım. Buradaki bzı örneklerde ODBC konusunu ele alırken oluşturduğumuz uyeler.mdb’yi DSN olarak “uyeler” verisi şeklinde kullanacağız; fakat siz istediğiniz veriyi kullanabilirsiniz.

Seçme Kutuları: SELECT

SELECT, ziyaretçilerimize önceden belirlenmiş bir çok unsurdan birini veya daha fazlasını seçmelerine imkan veren bir etikettir. Ziyaretçi, seçimini SELECT’in OPTION’ları arasından yapar. Seçenekler (OPTION), sahip oldukları değeri Server’a gönderirler. Genel yazım kuralı şöyledir:

<FORM ACTION=”...” METHOD=POST|GET>

<SELECT NAME=”metin”>

<OPTION VALUE=”değer1”>Tercih 1

<OPTION VALUE=”değer2”>Tercih 2

<OPTION VALUE=”değer3”>Tercih 3

</SELECT>

Bu Form’un gönder (Submit) düğmesi ile sağlanan hareket (ACTION), seçilen değeri veya değerleri, Form’u işleyecek ASP programına gönderir.

Ziyaretçimize sunacağımız seçenekler, iki-üç adet ise, bunu HTML dosyasını yazarken, OPTION’lar halinde kodlamak kolay olabilir. Ancak seçenek sayısı artıyorsa, veya seçeneklerimiz sık sık değişiyorsa, bunları bir veri tabanında toplamak ve OPTION değerlerini veritabanının bir alanından alarak ziyaretçiye sunmak çok daha kolay olur. Böylece ASP sayfası değişmeden kalır; biz sadece veritabanını güncelleştiririz. Çoğu zaman bu güncelleştirme ziyaretçilerin yapacakları eklerin veritabanına yazılmasıyla sağlandığı için, ortaya gerçekten dinamik bir Web Uygulaması çıkmış olur.

Diyelim ki, bizim grubumuzun üyelerini gösteren yukarıda oluşturduğumuz uyeler.mdb (DSN’i uyeler olan veritabanı) dosyasının adı-soyadı alanlarını birleştirerek, sayfamızdaki bir SELECT etiketinin OPTION’larına yazmak istiyoruz. Bunun için önce sayfamızda kullanacağımız değişkenleri tanımlayalım:

<%

Dim connVeriyolu, rsVeri, SQL

%>

Sonra, bu değişkenlerden veri ile ilgili olanlara .Connection ve .Recordset için gerekli ifadeleri yazalım. Veri ile çalışırken tasarımcının değişken adlarına bakarak hangisinin .Connection, hangisinin .Recordset değerlerini içerdiğini anlaması zorlaşabilir. Bu bakımdan değişken adlarının önüne .Connection için olanında conn, .Recordset için olanında rs harflerini kulllanmak yararlı olabilir. Veritabanından fiilen hangi verileri çekeceğimizi gösteren SQL deyimini de belirgin bir şekilde SQL değişkenine yazabiliriz:

<%

Set connVeriyolu = Server.CreateObject("ADODB.Connection")

SQL ="SELECT uyeAdi, uyeSoyadi FROM uyeler"

%>

Şimdi bu değerlere dayanan ve adına uyeler diyeceğimiz veri kümesini oluşturalım:

<%

connVeriyolu.open "uyeler"

Set rsVeri=connVeriyolu.execute(SQL)

%>

Artık elimizde içinde bütün üyelerin adı ve soyadını tutan bir dizi-değişken var. Şimdi biliyoruz ki veritabanından veri satır-satır okunur. Birinci satırın okunması sırasında bu değişkenin değerlerini yazacak olursak:

rsVeri (0) = üye 1’in adı

rsVeri(1) = üye 1’in soyadı

olacaktır. Veritabanından ikinci satırın okunmasında ikinci üyenin adı ve soyadı, üçüncü satırın okunmasında üçüncü üyenin adı ve soyadı bu değişkenlerin değeri olacaktır. Demek ki, bu değerleri bir SELECT etiketinin OPTION değeri olarak kullancaksak, bu işlemi ikinci satır okunmadan yaptırmamız gerekir. O halde:

<SELECT NAME="AdSoyad">

<% Do While Not uyeler.eof %>

<OPTION VALUE = "<%= rsVeri(0) & " " & rsVeri(1)%>"><%= rsVeri(0) & " " & rsVeri(1)%>

</Option>

<%rsVeri.movenext

loop%>

</select>

<% rsVeri.close %>     

</SELECT>

Do döngüsünün içinde iken veritabanından alınan değer, herhangi bir değişkenin değeri gibi kullanılabilir. Burada verilerin uyeler dizisinin dosya sonuna (eof, End Of File) okunduğuna dikkat edin. Şimdi yukarıdaki kodları bir Form içinde birleştirelim:

<%@ LANGUAGE="VBSCRIPT" %>

<% Option Explicit %>

<HTML>

<HEAD>

<TITLE>ASP SELECT DOLDURMA</TITLE>

<META http-equiv="content-type" content="text/html; charset=ISO-8859-9">

<META http-equiv="Content-Type" content="text/html; charset=windows-1254">

</HEAD>

<%

' Değişkenleri tanımlayalım

Dim connVeriyolu, rsVeri, SQL

Set connVeriyolu = Server.CreateObject("ADODB.Connection")

SQL ="SELECT uyeAdi, uyeSoyadi FROM uyeler"

connVeriyolu.open "uyeler"

Set rsVeri=connVeriyolu.execute(SQL)

%>

<BODY>

Bu listeden bir üyenin adını seçiniz:

<SELECT NAME="AdSoyad">

<% Do While Not rsVeri.eof %>

<OPTION VALUE = "<%= rsVeri(0) & " " & rsVeri(1)%>"><%= rsVeri(0) & " " & rsVeri(1)%>

</Option>

<%rsVeri.movenext

loop%>

</select>

<% rsVeri.close %>     

</SELECT>

</BODY>

</HTML>

Bu sayfayı option.asp adıyla kaydederek sınayabiliriz. Alacağımız sonuç şuna benzemelidir:

<odbc0003.tif>

Burada yapılan seçim sonucu elde edilen değer Server’a gönderilebilir; ve söz gelimi ziyaretçinin seçtiği kişiye ait bilgiler kendisine ulaştırılabilir.

İşaretleme Alanları: INPUT-RADIO

INPUT etiketi türleri ziyaretçilerimizin önceden belirlenmiş bir çok unsurdan birini veya daha fazlasını seçmelerine veya kendilerinin girdi yapmalarına imkan veren bir etikettir. INPUT türlerinden Radio ve Checkbox (işaretleme kutusu) veritabanından çekilen değerlerle doldurularak ziyaretçiye sunulabilir. Ziyaretçi, seçimini radyo düğmelerinden veya işaret kutularından birini işaretleyerek yapar.

INPUT etiketinin radyo düğmesi türünün genel yazım kuralı şöyledir:

<FORM ACTION=”...” METHOD=POST|GET>

<INPUT TYPE=”Radio” NAME=metin1 VALUE=deger1>

<INPUT TYPE=”Radio” NAME=metin1 VALUE=deger2>

<INPUT TYPE=”Radio” NAME=metin1 VALUE=deger3>

</SELECT>

Bu Form’un gönder (Submit) düğmesi ile sağlanan hareket (ACTION), seçilen değeri Form’u işleyecek ASP programına gönderir. Bir Form’daki bir grup oluşturan bütün radyo düğmeleri aynı adı alırlar, ki böylece ASP programına bir değişken için değer gönderilmiş olur.

Diyelim ki ziyaretçimizden beğendiği rengi seçmesini isteyen bir grup radyo düğmesi sunan bir Form yapacağız. Şu kodu radyo.asp adıyla kaydedelim:

<%@ LANGUAGE="VBSCRIPT" %>

<HTML>

<HEAD>

<TITLE>ASP OPTION-RADIO DOLDURMA</TITLE>

<META http-equiv="content-type" content="text/html; charset=ISO-8859-9">

<META http-equiv="Content-Type" content="text/html; charset=windows-1254">

</HEAD>

<%

' Değişkenleri tanımlayalım

Dim connVeriyolu, rsVeri, SQL

Set connVeriyolu = Server.CreateObject("ADODB.Connection")

SQL ="SELECT renk FROM renkler"

connVeriyolu.open "uyeler"

Set rsVeri=connVeriyolu.execute(SQL)

%>

<BODY>

<FORM><DIV ALIGN="center"><center><TABLE BORDER="0">

<TR>

<TD colspan="2" align="center"><h3>Renk</h3></TD>

</TR>

<% Do While Not rsVeri.eof %>

<TR><TD><INPUT TYPE="radio" VALUE="<%=rsVeri(0)%>" NAME="Radyo"></TD> <TD><%=rsVeri(0)%></TD></TR>

<%rsVeri.movenext

loop%>

</TABLE></CENTER></DIV></FORM>

</BODY>

</HTML>

Burada “Radyo” isimli radyo düğmesine verdiğimiz değerleri, ODBC’nin “uyeler” adıyla tanıdığı veritabanından alıyoruz; bir önceki örnekten farklı olarak bu kez aynı veritabanındaki farklı tablodan, renkler tablosundan ve sadece bir alanın, renk alanının değerlerini çekiyoruz. Bu örnek programda da ziyaretçinin seçtiği değerleri Server’a gönderecek bir Gönder düğmesi yok. Ama içeriğini veritabanından aldığımız değerlerle doldurduktan sonra, ziyaretçinin radyo düğmeleriyle yapacağı tercihler, tıpkı klasik HTML’deki gibi kullanılabilir; Server’a değişken olarak gönderilebilir; veya ziyaretçinin bilgisayarında (client-side) herhangi bir Script tarafından kullanılabilir.

İşaretleme Alanları: INPUT-CHECHBOX

INPUT etiketinin ziyaretçiye işaretleyerek tercih imkanı veren diğer aracı Checkbox (işaretleme kutusu) türüdür. Tıpkı radyo düğmesinde olduğu gibi veritabanından çekilen değerlerle doldurularak ziyaretçiye sunulabilir. Ziyaretçi, seçimini işaret kutularından birini işaretleyerek yapar.

INPUT etiketinin Checkbox türünün genel yazım kuralı şöyledir:

<FORM ACTION=”...” METHOD=POST|GET>

<INPUT TYPE=”checkbox” NAME=metin1 VALUE=deger1>

<INPUT TYPE=”checkbox” NAME=metin1 VALUE=deger2>

<INPUT TYPE=”checkbox” NAME=metin1 VALUE=deger3>

</SELECT>

Bu Form’un gönder (Submit) düğmesi ile sağlanan hareket (ACTION) seçilen değeri Forma gönderecektir. Radyo düğmesi ile Checkbox’ın arasındaki fark, ziyaretçinin aynı ismi taşıyan radyo düğmelerinden birini işaretleyebilirken; istediği kadar Checkbox’a işaret koyabilmesidir. Birden fazla Checkbox işaretlendiği taktirde Server’a “metin1=deger1, deger2..” şeklinde bilgi gönderirler. (ASP programlama açısından, bu değişken Request.Form nesnesinde Checkbox’ın adını taşıyan kolleksiyonun içinde dizi-değişken olarak yazılır.)

Yukarıdaki radyo düğmesi örneğimizin sadece Do döngüsüne ait kısmını  değiştirerek,Checkbox’a uyarlayalım, ve isaret.asp adıyla kaydedelim:

<% Do While Not rsVeri.eof %>

<TR><TD><INPUT TYPE="checkbox" VALUE="<%=rsVeri(0)%>" NAME="Isaret"></TD> <TD><%=rsVeri(0)%></TD></TR>

<%rsVeri.movenext

loop%>

Ziyaretçi bu form ile birden fazla kutu işaretleyerek Gönder düğmesine basarsa, Server’a gelecek bilgi örneğin, “Isaret=Kırmızı, Mavi” şeklinde olacaktır.

 
 
  Bugün 85 ziyaretçi (128 klik) www.bilisim-egitim.tr.gg  
 
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol