Asp ile Veritabaından Accordion Menü Nasıl Yapılır?

Kodla Büyü

yusufpb

Seçkin Üye
Seçkin Üye
Mesajlar
464
İyi akşamlar arkadaşlar..
Asp ile hazırladaığım sitemin menülerinin bazılarında Accordion menü var, ben bunu accordion menüyü access veritabanı ile çekmek istiyorum, ama bir türlü işin içinden çıkamadım, nasıl bir tablo mantığı yürütüyüm diye. Tek tabloda işin içinden çıkılırmı yoksa 2 tabloyamı gerek vardır ?Nasıl bir kod yazmam gerekir? İnternette araştırdım ama bulamadım, bana bu konuda yardımcı olursanız sevinirim?Var ise örneleriniz hazırlanmış onlardan da yararlanabilirim?
Şimdiden teşekkürler..
<div class="m-tasiyici-ust menuw" ></div>
<div class="m-icerik menuw">
<div class="menukutu">
<ul class="menu"><h1>OKULUMUZ</h1>

<ul id="accordion">
<li><div id="ok"> Okulumuz Hakkında</div>
<ul>
<li><a href="#">Hakkımızda</a></li>
<li><a href="#">Misyon-Vizyon</a></li>
<li><a href="#">Tarihçe</a></li>
</ul>
</li>


<li><div><a href="#" > Yönetim Kadromuz</a></div></li>
<li><div id="ok">Öğretmen Kadromuz</div>
<ul>
<li><a href="#">I.Kademe</a></li>
<li><a href="#">II.Kademe</a></li>
</ul>
</li>


<li><div><a href="#" > Emektar Kadromuz </a></div></li>
<li><div><a href="#" > Personeller </a></div></li>
<li><div><a href="#" > Başarılarımız </a></div></li>
<li><div><a href="#" > Hizmet Standartları </a></div></li>

</ul>
</div>
</div>
<div class="m-tasiyici-alt menuw"></div>

Koyu renkli yerler acordion menülü yerler..
 
Hocam sade iç içe iki kısım mı varsa

vt yapın şöyle olmalı
Tablo1
id-MenüAd-Link(Burası olmayadabilir)

Tablo2
id-MenüAd-Link-UstMenüİd

Sonra
----------------------------------------------------------------------------------------------------
Set rs=Server.CreateObject("Adodb.Recordset")
sql="Select * from tablo1"
rs.open sql,vy, 1,3
if rs.eof or rs.bof then '1nolu if
response.write("Hiç menü yok")
else%>

<div class="m-tasiyici-ust menuw" ></div>
<div class="m-icerik menuw">
<div class="menukutu">
<ul class="menu"><h1>OKULUMUZ</h1>
<ul id="accordion">


<%do while not rs.eof
ustmenu_id=rs("id")%>


<li><div id="ok"><%=rs("MenüAd")%></div>

<%Set rs1=Server.CreateObject("Adodb.Recordset")
sql2="Select * from tablo2 where ustmenuid="&ustmenu_id&" "
rs1.open sql2,vy, 1,3
if not(rs2.eof) or not(rs2.bof) then '2nolu if%>

<ul>


<%do while not rs2.eof%>


<li><a href="<%=rs2("link")%>"><%=RS2("MenüAd")%></a></li>


<%rs2.movenext
loop%>

</ul>

<%rs2.close
set rs2=nothing
End if '2nolu if kapat%>


</li>

<%rs.movenext
loop%>

</div>
</div>
<div class="m-tasiyici-alt menuw"></div>

<%end if '1noluif kapat

----------------------------------------------------------------------------------------------------------------


rs= ana kategorilerin blunduğu tabloyu bağladığım kayıt dizisi
rs1=alt kategorileri bağladığım kayıt dizisi


Mantık şu.

Birinci tablodan kayıtları listeletirken, idlerini alt menü tablosunda arıyorum eğer kayıt varsa onlarıda döndürüyorum. İç içe iki döngü. Ana blokları döngüden önce açıp en son döngüden sonra kapatıyoruz. Asp kategori sistemi gibi...

Tam anlamadığım için menünü (üst ve alt ketegori var diye düşündüm) sıkıntı olabilir, birde uygulamadım, öylece yazdım siz denersiniz, tırnak işaretinde bazı yazım yanlışları vs vardır. Mantığı umarım anlatabilmişimdir. Kolay gelsin...
 
Hocam mantığını kavramaya başladım, kod için ellerine sağlık..Çok teşekkür ettim..Eğer takıldığım bir yer olursa sizi rahatsız edebilirim, şimdiden kusura bakmayın..

Not: Accordion olmayan tek linkli bölümler var, belki orası için ayrıca kod yazılabilir. Onu da eklemeyi deneyeceğim.Çok teşekkürler..
 
Kolay gelsin hocam... Anladığım kısımlarda seve seve yardımcı olmaya çalışırım...

Kolay gelsin...
 
s_kajmeran arkadaşım öncelikle paylaşımın için çok teşekkür ederim çok işime yaradı kodda ufak tefek hatalar vardı düzelttim bir faydam olsun dedim paylaştım isteyen arkadaşlara veri tabanı ve kodunu rar layıp yükledin https://skydrive.live.com/redir?resid=E ... ile%2c.rar umarım işinize yarar kolay gelsin iyi paylaşımlar :idea:
Kod:
<%
Set vy = Server.CreateObject("ADODB.Connection")
vy.Open "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" &Server.MapPath("db.mdb")



Set rs=Server.CreateObject("Adodb.Recordset")
sql="Select * from tablo1"
rs.open sql,vy, 1,3
if rs.eof or rs.bof then '1nolu if
response.write("Hiç menü yok")
else%>

<div class="m-tasiyici-ust menuw" ></div>
<div class="m-icerik menuw">
<div class="menukutu">
<ul class="menu"><h1>OKULUMUZ</h1>
<ul id="accordion">


<%do while not rs.eof
ustmenu_id=rs("id")%>


<li><div id="ok"><%=rs("MenüAd")%></div>

<%
Set rs2=Server.CreateObject("Adodb.Recordset")
sql2="Select * from tablo2 where ustmenu_id="&ustmenu_id&" "
rs2.open sql2,vy, 1,3
if not(rs2.eof) or not(rs2.bof) then '2nolu if%>

<ul>


<%do while not rs2.eof%>


<li><a href="<%=rs2("link")%>"><%=rs2("MenüAd")%></a></li>


<%rs2.movenext
loop%>

</ul>

<%rs2.close
set rs2=nothing
End if '2nolu if kapat%>


</li>

<%rs.movenext
loop%>

</div>
</div>
<div class="m-tasiyici-alt menuw"></div>

<%end if '1noluif kapat%>
 
asp ile 5 yıldır ilgileniyorum ama her insan gibi benimde eksiklerim var kendi çabamla öğrendiğim için takılıyorum bazen sizingibi ilgili arkadaşlara çok teşekkür ederim yardımcı olabileceğim konularda benimle irtibat kurabilirsiniz arkadaşlar destek@kardeslertekno.com iyi günler dilerim :+1:
 
bence tek tabloda bitirin,
db yapınız,
id, menuadi,baglimenuId

şeklinde
ana menülerin baglimenuId leri 0 diğerleri de bağlı oldukları menüler,
bu sayede istediğin zaman sınırsız alt menü mantığınada dönüştürebilirsin projeni
recursive fonksiyonlarlada menünü kolayca html formatına dönüştürebilirsin hocam
 
BBNET
Geri
Üst