Saya orang B dan tidak tahu cara menggunakan video untuk menyelesaikan masalah, jadi saya harus menggunakan kata-kata saya yang membingungkan untuk menulis.
Dalam keadaan normal, situasi ini berguna untuk direktori sekunder. Ada banyak jenis JS yang beredar di website sekarang, tapi semuanya tidak lebih dari kode JS yang membuat orang seperti saya bingung. . Sekaligus untuk... array sekaligus.
Tanpa basa-basi lagi, mari langsung ke intinya.
Pertama Anda harus membuat tabel. Tentu saja, jika direktori di tabel Anda sudah dibuat, langkah ini bisa dihilangkan. Namun ada satu hal yang perlu diingat: tabel ini adalah dasar dari contoh saya (saya tidak tahu apakah ini benar).
Karena tabel yang saya gunakan adalah ACCESS, saya tidak akan membuat tabel. Saya hanya akan mencantumkan nama field yang sesuai dari kedua tabel ini (nama database: db.mdb):
Nama tabel: type_tree - Field kelas induk: type_id (nomor otomatis) type_name (nama kategori)
Nama tabel: s_type - Field subkelas: id (nomor otomatis) s_name (nama subkategori) type_id (ID kelas induk) - dan Sesuai dengan kelas induk tabel,
koneksi database sekarang dibuat:
Dim conn, connStrSet conn = server.CreateObject("ADODB.Connection")connStr = "Provider = Microsoft.jet.oledb.4.0;"connStr = connStr & "Data Source = " & server .mappath("db.mdb")Samb.Buka sambunganStr
Kode-kode di atas tidak perlu dijelaskan, semuanya adalah kode-kode yang umum digunakan. .
Sekarang ke tindakan nyata :)
Menu konteks sekunder umumnya dibuat dengan menu drop-down, dan saya tidak terkecuali di sini, dan saya juga menggunakan menu drop-down untuk membuatnya.
Tapi ada satu hal yang berbeda di sini.
Seseorang menggunakan menu lompat. Ini sangat penting. Keberhasilan sepenuhnya bergantung pada apakah menu tersebut digunakan dengan benar!
Di bawah ini adalah kode untuk menu lompat ini!
<pilih nama="pertama" onChange="MM_jumpMenu('induk',ini,0)">
<%
sql = "pilih [type_id],[type_name] dari [type_tree]"
set rs = conn.execute(sql)'Dapatkan ID dan nama kelas induk
jika rs.eof atau rs.bof maka
respon.tulis "<option>-----</option>" 'Jika tidak ada catatan, tampilkan -----
kalau tidak
while not(rs.eof or rs.bof) 'Jika ada record, cantumkan nama induknya hingga membentuk drop-down.
respon.tulis ("<nilai opsi='?sec=" & rs(0) & "'")
jika cstr(rs(0)) = request.querystring("detik") maka
respon.tulis "dipilih"
berakhir jika
respon.tulis (">" & rs(1) & "</option>")
rs.movenext
pergi ke
rs.movefirst 'Pindahkan kursor ke item pertama untuk digunakan nanti.
berakhir jika
%>
</pilih>
Oh ngomong-ngomong, ada kode lain yang lupa saya posting. Ini kunci untuk melompat ke menu.
Tambahkan untuk menambahkan:
<skrip bahasa="JavaScript" type="teks/JavaScript">
<!--
fungsi MM_jumpMenu(targ,selObj,pulihkan){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (pulihkan) selObj.selectedIndex=0;
}
//-->
</skrip>
Kode di atas ditempelkan ke <head> dan dihasilkan oleh DW. Saya kurang paham maksudnya, jadi saya tidak akan berkomentar :D
Sekarang ini adalah bagian sekunder dari menu, ini bukan menu lompat, ini hanya daftar, jadi satu-satunya perbedaan antara kode dan menu lompat di atas adalah fungsi onchange.
Berikut ini adalah kode menu ini. Karena perulangan dan penilaian lebih rumit dari yang di atas, setiap orang harus membacanya dengan jelas.
<pilih nama="kedua">
<%jika rs.eof atau rs.bof lalu
respon.tulis("<pilihan>--------</pilihan>")
kalau tidak
if request.querystring("sec") = "" maka 'Dapatkan nilai detik setelah lompatan
temp=rs(0) Jika kosong, atur nilai temp ke nilai record pertama
kalau tidak
temp = request.querystring("sec") 'Jika tidak maka akan menjadi nilai yang diterima
berakhir jika
subsql = "pilih [s_name] dari [s_type] di mana type_id='"&temp&"'"
set subrs = conn.execute(subsql) 'Daftar semua catatan yang datanya bersifat sementara
jika subrs.eof atau subrs.bof maka
respon.tulis ("<option>-----</option>")
'Jika tidak ada catatan, tampilkan "-----" di daftar ini
kalau tidak
while not(subrs.eof or subrs.bof)' Jika tidak, gunakan loop untuk mencantumkan semua record yang memenuhi ketentuan.
respon.tulis ("<option value=" & subrs(0) & ">" & subrs(0) & "</option>")
subrs.movenext
pergi ke
berakhir jika
berakhir jika
'Tutup semua kumpulan rekaman
subrs.close
setel subrs = tidak ada
rs.tutup
setr=tidak ada
samb.tutup
setel sambungan = tidak ada
%>
</select>
Hingga saat ini, proses pembuatan menu sekunder ini telah selesai, sangat sederhana seperti yang saya jelaskan.
Jika Anda tidak mengerti, tolong berhenti bicara. Lagi pula, saya tidak tahu harus berkata apa lagi.
Para ahli bersedia memberi Anda nasihat.