ASP de Split Fonksiyonu ile hotmaildekideki gibi seçilen maillerin silinmesine benzer bir örnek uygulama yapıyoruz
Split ASP ye yeni başlayanların genellikle yabancı oldukalrı bir Fonksiyondur olup bir çok yerde çok işimize yarar.
Şimdi örnek uygulamda sitemizin anasayfasında kullanıcıların mail listesine kayıt olduğu senaryosuna göre hareket edeceğiz. .
Database Ms Access olsun ve mailleri tutacağımız Tablomuzun adı da Posta olsun. tablodaki alanlar da aşağıdaki gibi..
Posta :
id : otomatikSayı
ad: metin
soyad: metin
eposta : metin
tel : metin
tarih : metin
Şimdi bu mailleri alt alt alta listeleyip yanlarına da birer checkbox koyacağız ancak bunların hepsini bir While döngüsü içinde yapacağız ,formun action hedefi olarak da eposta_sil.asp ve method da post yapacağız.
Kodlar :
-----------------------------------------
Split ASP ye yeni başlayanların genellikle yabancı oldukalrı bir Fonksiyondur olup bir çok yerde çok işimize yarar.
Örnek kullanım :
dim isimler as string
isimler ="ilhan,tuncay,ilkay,meftun,gökahan "
For Each x in Split(isimler,",") // burda isimleri virügle göre ayırdık ve elimizde bir nevi bir dizi oluşmuş oldu
Response.write (x)&"<br>"
next
yukarıdaki kodun çıktısı :
ilhan ' // dizinin 0. elemanı
tuncay '// diziin 1.Elamanı
ilkay '//dizinin 2.elemanı
meftun ' //dizinin 3.elemanı
gökhan ' //dizinin 4.elemanı
şeklinde olacaktır.
Şimdiki örnek uygulamamızda sitemizin anasayfasında kullanıcıların mail listesine kayıt olduğu senaryosuna göre hareket edeceğiz. ,. bu mailleri listeleyip sonra yanlarındaki CheckBox laradan seçikitlerimizi sileceğiz.
Database Ms Access olsun ve mailleri tutacağımız Tablomuzun adı da posta olsun. tablodaki alanlar da aşağıdaki gibi..
posta :
id : otomatikSayı
ad: metin
soyad: metin
eposta : metin
tel : metin
tarih : metin
Şimdi bu mailleri alt alt alta listeleyip yanlarına da birer checkbox koyacağız ancak bunların hepsini bir While döngüsü içinde yapacağız ,formun action hedefi olarak da eposta_sil.asp ve method da post yapacağız.
Kodlar :
<!-- #include File="dbbag.asp"-->
<% set rs=Server.CreateObject("Adodb.Recordset")
rs.Open "Select * from posta order by tarih desc",Baglanti,1,3 %>
<form action="eposta_sil.asp" method="post">
<table width="90%" border="0" align="center" cellpadding="2" cellspacing="2" bgcolor="#CCCCCC">
<tr align="center" bgcolor="#0099FF">
<th colspan="6" bgcolor="#0099FF"><span class="style9">E-Posta Listesi </span></th>
</tr>
<% x=1%>
<% while not rs.eof %>
<tr align="center" bgcolor="#0099FF">
<td><%=rs("ad")%></td>
<td><%=rs("soyad")%></td>
<td align="center"><%=rs("eposta")%> </td>
<td><%=rs("tel")%></td>
<td><%=rs("tarih")%></td>
<td>
<label>
<input name="sil" type="checkbox" id="sil" value="<%=rs("id")%>" /><!-- olayın 1. önemli bölümü bu satır checkbox ın value değerei epostanın id si olarak belirtiliyor , -->
</label></td>
</tr>
<%rs.movenext:Wend%>
</table>
<table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr align="right"><td>
<input name="silbuton" type="submit" id="silbuton" value="Seçilenleri Sil" /></td></tr></table>
</form>
------------------
ŞİMDİ seçilen maillerin silinceği eposta_sil.asp sayfasına geçiyoruz
Kodlar:
<!-- #include File="dbbag.asp"-->
<% sil=Request.Form("sil")
For Each x in Split(sil,",")
Baglanti.Execute("delete from posta where id="&x&" ")
next
Response.Redirect("eposta_liste.asp")
------------------------------------------------
' eposta sayfamızdan gelen checkbox değerini alıyoruz gelen değer strin ifade şeklinde olacaktır
' örneğin 2,3,4,5,6 gibi . yani her mail adresinin id değeri aralarında (,)virgül olacak şekilde geldi.
' Bizim yapmamız gereken bu sayıları teker teker alde etmek .
' İşte burda SPLİT fonksiyonu yetişiyor. Slip ile gelen string ifadeyi virgüllere göre ayırıp bir diziye atayacağız
' ve bu dizini eleman sayısını bilmediğimz içinde for Each dönügüsü kullanıyorum.
'Split kullanımı : Split(parçalancakDeger, " Parçalamada kullanılacak karakter ")
'Yani yukarıda da görüldüğü gibi QuerString den gelen 2,5,6,9,10,23 gibi değerlei virgüllere göre parçalayıp bir dizi elte ediyoruz
' sonuçta dizi oluşuyor ve dizini elemanaları 2 5 6 9 10 23 oluyor.
'son olarak For Each döngüsü içerisinde veritabanındaki kayıtlarımızdan kirtere uygun olanları siliyoruz
Kolay Gelsin.