MaxiASP Kategori  [ASP ve Kodlamalar]

  Konu Başlığı | ürün karşılaştırma |
  Gönderen     | Oguzhan | Mail  oguzhanozel@gmail.com
  Bu yazıyı toplam 16054 kişi okudu.  
  Listeden ürünleri seçerek özelliklerini karşılaştırabilirsiniz.Forumda sorulmuştu bu bende yaptım buraya da koyayım dedim.

Önce bir veritabanı yapmanız gerekiyor;

"urun" adında bir veritabanı yapın ve "urunler" diye bir tablo oluşturun. uid, urun, ozellik1*, ozellik2*, ozellik3*, ozellik4* alanlarını oluşturun. * ile işaretli alanlar deneme amaçlı oluşturduğum alanlar. siz istediğiniz bir ismi yazabilirsiniz. örneğin arabalar için otomatikvites, klima gibi alanlar oluşturabilirsiniz.

veritabanını oluşturduktan sonra sıra sayfalara geldi. 1. sayfa liste.asp sayfası burda ürünler listelenecek gayet basit.

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
<title>Ürünler</title>
</head>

<body>

<%
Dim baglan, urun, i
Set baglan = Server.CreateObject("ADODB.Connection" )
baglan.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" &Server.MapPath("urun.mdb" )&";"

Set urun = baglan.Execute("select uid, urun from urunler order by urun asc" )
%>
<form method="post" action="karsilastir.asp">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tr>
    <td width="4%"> </td>
    <td width="62%">Ürün</td>
    <td width="34%"> </td>
  </tr>
  <%
  i = 1
  Do While not urun.Eof
%>
  <tr>
    <td width="4%"><input type="checkbox" name="urun<%=urun("uid" ) %>" value="<%=urun("uid" ) %>"></td>
    <td width="62%"><%=urun("urun" ) %></td>
    <td width="34%"> </td>
  </tr>
  <%
  i = i+1
  urun.Movenext : Loop
%>
  <tr>
    <td width="4%"> </td>
    <td width="62%"><br><input type="submit" value="Karşılaştır"></td>
    <td width="34%"> </td>
  </tr>
  </table>
  <input type="hidden" value="<%=i %>">
</form>
</body>

</html>


burda normal listelemenin yanısıra seçilen ürünleri belirliyebilmek için urun+urunid şeklinde isimlendirilmiş checkboxlar ekledik.ürünler listelendikten sonra seçilen ürünlerin karşılaştırıldığı karsilastir.asp geliyor sıra;

<html>

<head>
<meta http-equiv="Content-Language" content="tr">

<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
<title>Ürün Karşılaştırma</title>
</head>

<body>
<%
Set baglan = Server.CreateObject("ADODB.Connection" )
baglan.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" &Server.MapPath("urun.mdb" )&";"

toplam = Request.Form("toplam" )
Set liste = baglan.Execute("select * from urunler" )

'kaç ürün seçildiğini belirlemek için bir döngü
secilen = 0
Do While not liste.Eof

If Request.Form("urun" &liste("uid" )) <> "" Then

secilen = secilen+1
End If

liste.Movenext
Loop

If secilen < 2 Then
Response.Write "karşılaştırma yapabilmek için en az 2 ürün seçmeniz gerekiyor."
'en az 2 ürün seçilebilir.
Else

liste.Movefirst 'kaydı başa alıp karşılaştırma işlemi yapılacak

'ufak bir function, true ve false ı doğru ve yanlış a çeviriyor.
Function donustur(gelen)

If gelen = true Then
Response.Write "var"

ElseIf gelen = false Then
Response.Write "yok"

End If

donustur = gelen
End Function
%>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
  <tr>
    <td width="20%">ürünler/özellikler</td>
    <td width="20%">özellik1</td>
    <td width="20%">özellik2</td>
    <td width="20%">özellik3</td>
    <td width="20%">özellik4</td>
  </tr>
  <% Do While not liste.Eof %>
  <% If Request.Form("urun" &liste("uid" )) <> "" Then %>
  <tr>
    <td width="20%"><%=liste("urun" ) %></td>
    <td width="20%"><%donustur(liste("ozellik1" )) %></td>
    <td width="20%"><%donustur(liste("ozellik2" )) %></td>
    <td width="20%"><%donustur(liste("ozellik3" )) %></td>
    <td width="20%"><%donustur(liste("ozellik4" )) %></td>
  </tr>
  <% End If %>
  <% liste.Movenext:Loop %>
</table>
<% End If %>
</body>

</html>

dediğim gibi burda

    <td width="20%">özellik1</td>
    <td width="20%">özellik2</td>
    <td width="20%">özellik3</td>
    <td width="20%">özellik4</td>

ve

    <td width="20%"><%donustur(liste("ozellik1" )) %></td>
    <td width="20%"><%donustur(liste("ozellik2" )) %></td>
    <td width="20%"><%donustur(liste("ozellik3" )) %></td>
    <td width="20%"><%donustur(liste("ozellik4" )) %></td>

alanlarını kullanım amacınıza göre düzenleyebilirsiniz.

veritabanını http://n.domaindlx.com/codewrt/urun.mdb adresinden indirip hazır bir şekilde kullanabilirsiniz.

burdan da kodların hazır şeklini kontrol edebilirsiniz: http://n.domaindlx.com/codewrt/liste.asp

umarım yararlı olmuştur.


  Bu yazıya puan                                                                    kapat