โปรแกรมสากล ASP เพื่อใช้เมนูแบบยุบได้ในหน้าเว็บ
ธนาคารแห่งประเทศจีน มณฑลซานซี สาขาจินเฉิง สาขาวิทยาศาสตร์และเทคโนโลยี จินหยู
ด้วยความนิยมที่เพิ่มขึ้นของอินเทอร์เน็ต/อินทราเน็ต การเขียนโปรแกรมเว็บและการผลิตหน้าเว็บจึงกลายเป็นเทรนด์ บทความนี้จะแนะนำให้ผู้อ่านรู้จักกับเทคโนโลยีการเขียนโปรแกรมสำหรับการนำเมนูพับไปใช้ในหน้าเว็บ ผมเชื่อว่ามันจะช่วยเพิ่มสีสันให้กับหน้าเว็บของคุณได้ เมนูที่เรียกว่าพับนั้นเป็นเมนูที่แสดงแบบไดนามิก กล่าวคือ เมื่อไม่มีการดำเนินการเมนู ระบบจะแสดงเฉพาะเมนูหลักเท่านั้น เมื่อเลือกรายการเมนู เมนูย่อยย่อยจะปรากฏขึ้นแบบไดนามิก และหลังจากการเลือกเสร็จสิ้น พวกมันถูกซ่อนไว้อีกครั้ง
หลักการปฏิบัติ
คุณจะต้องคุ้นเคยกับแท็ก HTML <DIV> เป็นอย่างดี เราสามารถใช้แอตทริบิวต์การแสดงผลเพื่อซ่อนหรือแสดงเนื้อหาของแท็ก <DIV> ได้ วิธีการเฉพาะคือการซ่อนหรือแสดงเมื่อตั้งค่าการแสดงผลเป็นไม่มี หากเราทำเครื่องหมายชื่อเมนูทั้งหมด (รวมถึงเมนูย่อย) ด้วย <DIV> เราจะสามารถรับรู้ถึงเมนูพับได้โดยใช้ภาษา ASP ร่วมกับสคริปต์เพื่อควบคุมการแสดงผลหรือการซ่อนตัวเลือกเมนูที่เกี่ยวข้องแบบไดนามิก
ปัญหาตอนนี้คือจะเพิ่มชื่อรายการเมนูลงในโปรแกรมได้อย่างไร แน่นอนว่าคุณสามารถเพิ่มลงในหน้าเว็บได้โดยตรง แต่ถ้าคุณเปลี่ยนตัวเลือกเมนู คุณต้องแก้ไขโค้ดควบคุมของหน้าเว็บนี้ใหม่ เห็นได้ชัดว่าวิธีการไม่ฉลาดพอ บทความนี้ใช้จัดเก็บชื่อตัวเลือกเมนูทั้งหมดในไฟล์ข้อความในรูปแบบที่กำหนด เมื่อโหลดหน้าเว็บ โค้ด ASP จะอ่านเนื้อหาโดยอัตโนมัติ ด้วยวิธีนี้ หากตัวเลือกเมนูมีการเปลี่ยนแปลง เพียงแค่ทำให้สอดคล้องกัน การเปลี่ยนแปลงในไฟล์นี้
เกี่ยวกับการทำงานของไฟล์ เราใช้ส่วนประกอบการเข้าถึงไฟล์ในตัวของ ASP เพื่อดำเนินการให้เสร็จสิ้น สำหรับการใช้งานเฉพาะ โปรดดูโค้ดโปรแกรมที่ส่วนท้ายของบทความ
ไฟล์ข้อความเมนู
บทความนี้ยอมรับว่าเนื้อหาของไฟล์ข้อความเมนูจะต้องเป็นไปตามกฎต่อไปนี้: ชื่อที่อธิบายตัวเลือกเมนูจะต้องมีเนื้อหาสามบรรทัด (ดูตัวอย่างด้านล่าง) ไม่อนุญาตให้มีบรรทัดว่างในไฟล์ ชื่อตัวเลือกเมนู แต่ต้องใช้แป้นเว้นวรรค (แป้นเว้นวรรค) ไม่สามารถใช้แป้น Tab ได้ ส่วนท้ายของไฟล์จะเติม *END* สองบรรทัด
สมมติว่ามีเมนูสามระดับต่อไปนี้:
ซอฟต์แวร์ระบบปฏิบัติการ
ซอฟต์แวร์คอมพิวเตอร์ ---- ซอฟต์แวร์ระบบแอปพลิเคชัน
ซอฟต์แวร์เครื่องมือ ----- PC TOOLS
น่ารักFTP
ข้อความเมนูควรมีรูปแบบดังต่อไปนี้:
1------หมายถึงชื่อเมนูหลักชื่อแรก
ซอฟต์แวร์คอมพิวเตอร์--------ชื่อเมนู (เหมือนกันด้านล่าง)
3 ถ้าไม่ใช่ 0 ให้ระบุจำนวนเมนูย่อยของเมนูนี้ ในตัวอย่างนี้คือ 3
1*1 หมายถึง เมนูย่อยแรกของเมนูหลักเมนูแรก (* ต้องใช้)
ซอฟต์แวร์ระบบปฏิบัติการ
0 http://… --------- ถ้าเป็น 0 แสดงว่ารายการเมนูไม่มีเมนูย่อย ตามด้วย URL ของไฮเปอร์ลิงก์
1*2 ---------- หมายถึงเมนูย่อยที่สองของเมนูหลักเมนูแรก (เหมือนกันด้านล่าง)
ซอฟต์แวร์ระบบแอพพลิเคชั่น
0 http://…
1*3
ซอฟต์แวร์เครื่องมือ
2
1*3*1 -------- เมนูย่อยที่ 1 ของเมนูย่อยที่ 3 ในเมนูหลักที่ 1
เครื่องมือพีซี
0 http://…
รหัสโปรแกรม:
<HTML>
<หัว>
<ภาษาสคริปต์=VBScript>
'แสดงหรือซ่อนเมนูย่อย
ย่อย disp_sub_menu (curid)
สลัว ct, ฉัน, tmpid
ct=document.all(curid).style.ct
ผม=1
ขณะที่ฉัน<=CInt(ct)
tmpid=curid+*+cstr(i)
ถ้า document.all(tmpid).style.display=none จากนั้น
document.all(tmpid).style.display=
อื่น
document.all(tmpid).style.display=none
ถ้า CInt(document.all(tmpid).style.ct)>0 จากนั้น
ถ้า document.all(tmpid+*1).style.display= จากนั้น
disp_sub_menu(tmpid) 'เรียกเมนูย่อยระดับล่างซ้ำๆ
สิ้นสุดถ้า
สิ้นสุดถ้า
สิ้นสุดถ้า
ฉัน=ฉัน+1
เวนด์
จบหมวดย่อย
</SCRIPT></HEAD><BODY>
<FONT color=red><H2 align=center>ตัวอย่างการใช้เมนูพับในหน้าเว็บโดยใช้ ASP</H2></FONT><HR>
<% '----| คำนวณ * หมายเลขในรหัสเมนู|-----
ฟังก์ชัน spnum(str)
สลัว tmpstr,m,t
tmpstr=str
ม.=InStr(str,*)
เสื้อ=0
ในขณะที่ม<>0
เสื้อ=t+1
tmpstr=กลาง(tmpstr,m+1)
ม.=InStr(tmpstr,*)
เวนด์
spnum=t
ฟังก์ชันสิ้นสุด
'-----|. ส่งตัวเลือกเมนูไปยังเบราว์เซอร์ |-----
ย่อย output_line (ct_flag, curid, txtname, ct, txtcolor)
ptl สลัว, sp, dispval, tspace
sp=spnum(เคอร์ริด)
dispval=ไม่มี
ถ้า sp=0 แล้ว dispval=
ทีสเปซ=
ในขณะที่ sp>0
ทีสเปซ=ทีสเปซ+
เอสพี=เอสพี-1
เวนด์
ถ้า ct_flag=1 จากนั้น 'เมนูระดับนี้มีเมนูย่อย ให้ใช้ <DIV> เพื่อทำเครื่องหมายเท่านั้น
ptl=<div id=+chr(34)+curid+chr(34)+ สไตล์=
ptl=ptl+chr(34)+สี:+txtcolor+;
ptl=ptl+ ct:+ct+; line-height:25px;
ptl=ptl+ เคอร์เซอร์:มือ;
ptl=ptl+ จอแสดงผล:+dispval+chr(34)
ptl=ptl+ onclick=+chr(34)+disp_sub_menu('+curid+')+chr(34)
ptl=ptl+>+tspace+txtname+</div>+chr(13)
อื่น 'เมนูระดับนี้เป็นเมนูระดับต่ำสุดที่มีเครื่องหมาย <DIV> และ <A>
ptl=<div id=+chr(34)+curid+chr(34)
ptl=ptl+ style=+chr(34)+display:+dispval+;
ptl=ptl+line-height:25px; color:+txtcolor+; ct:0+chr(34)+>
ptl=ptl+tspace+<A href=+chr(34)+ct+?txt=+txtname+chr(34)+>+txtname+</A></div>+chr(13)
สิ้นสุดถ้า
ตอบกลับเขียน PTL
จบหมวดย่อย
'----|. กระบวนการควบคุมหลัก|-----
curid สลัว, txtname, ct, ct_flag, txtcolor
ตั้งค่า fs = createobject (SCRIPTING.FILESYSTEMOBJECT)
menufile=replace(request.servervariables(path_translated),menu.asp,mfile.txt)
ตั้งค่า txtstr=fs.opentextfile (ไฟล์เมนู)
curid=txtstr.readline
ในขณะที่เคอร์ด<>*END*
curid=y+Trim(curid) 'สร้างรหัสของรายการเมนูปัจจุบัน
txtname=Trim(txtstr.readline) 'อ่านชื่อเมนู
ct=Trim(txtstr.readline) 'อ่านจำนวนเมนูย่อยของเมนูนี้
ct_flag=1
ถ้า Mid(ct,1,1)=0 แล้ว
ct_flag=0
ct=LTrim(กลาง(ct,2))
สิ้นสุดถ้า
txtcolor=สีดำ
เลือกกรณี spnum (curid)
กรณีที่ 1
txtcolor=red 'สีเมนูย่อยระดับ 1
กรณีที่ 2
txtcolor=green 'สีเมนูย่อยระดับที่สอง
กรณีที่ 3
txtcolor=blue 'สีเมนูย่อยสามระดับสามารถเพิ่มต่อไปได้'
สิ้นสุดการเลือก
output_line ct_flag,curid,txtname,ct,cstr(txtcolor)
curid=txtstr.readline
เวนด์
txtstr.ปิด
-
<HR></BODY></HTML>
รหัสนี้ส่งผ่านภายใต้ Win98/PWS (เว็บเซิร์ฟเวอร์ส่วนบุคคล)