Ajax+asp هيكل شجرة تصنيف غير محدود مع قاعدة بيانات، أشياء جيدة، لا تفوتها، تم اجتياز اختبار IE، FF لديه خطأ صغير
Cls_Leibie.asp
انسخ رمز الكود كما يلي:
<%
'حقول قاعدة البيانات هي سمات فئة، والوظائف مثل الإضافة والحذف والتعديل والتحقق من العمليات هي أساليب فئة.
فئة Cls_Leibie
Private nClassID,sClassName,nParentID,sParentPath,nDepth,nRootID,nChild,nOrderID,sFilePath 'تحديد المتغيرات الخاصة (سمات الفئة، أي المتغيرات المقابلة لحقول قاعدة البيانات)
خاص rs، sql، ErrorStr
فئة فرعية خاصة_Initialize()
ErrorStr= 'رسالة خطأ التهيئة فارغة
نهاية الفرعية
Private Sub Class_Terminate() 'أغلق اتصال قاعدة البيانات عند تدمير الفصل
إذا كان IsObject(Conn) ثم
كون.إغلاق
SetConn=لا شيء
نهاية إذا
نهاية الفرعية
'************************ تعيين خصائص مختلفة ********************** ******** **************************
الملكية العامة Let ClassID(str) 'الحصول على معرف الفئة (المفتاح الأساسي)
nClassID=str
استدعاء ClassProperty() 'اتصل بهذه الوظيفة لقراءة كافة خصائص الفئة عند الحصول على معرف الفئة
نهاية الملكية
الملكية العامة Let ClassName(str) 'احصل على اسم الفئة
sClassName=str
نهاية الملكية
الملكية العامة احصل على ClassName
ClassName=sClassName
نهاية الملكية
الملكية العامة Let ParentID(str) 'احصل على معرف أصل الفئة
nParentID=str
نهاية الملكية
الملكية العامة احصل على ParentID
ParentID=nParentID
نهاية الملكية
الملكية العامة Let ParentPath(str) 'احصل على معرف المسار الأصلي
sParentPath=str
نهاية الملكية
الملكية العامة احصل على ParentPath
ParentPath=sParentPath
نهاية الملكية
الملكية العامة Let Depth(str) 'احصل على عمق الفئة
nDepth=str
نهاية الملكية
الملكية العامة احصل على العمق
العمق=nالعمق
نهاية الملكية
الملكية العامة Let RootID(str) 'احصل على معرف جذر الفئة
nRootID=str
نهاية الملكية
الملكية العامة احصل على RootID
معرف الجذر=nRootID
نهاية الملكية
الملكية العامة Let Child(str) 'عدد الفئات الفرعية
nChild=str
نهاية الملكية
الملكية العامة احصل على طفل
طفل=نطفل
نهاية الملكية
الملكية العامة Let OrderID(str) 'معرف الطلب
nOrderID=str
نهاية الملكية
الملكية العامة احصل على معرف الطلب
معرف_الطلب=nOrderID
نهاية الملكية
الملكية العامة تسمح لـ FilePath(str) 'الدليل الجذر لملف الفئة (إنشاء مسار ملف ثابت، تستخدم مدونة Xiaozhan Laoyang Web Technology إنشاء ملف ثابت، لذا قم بتعيين هذا الحقل)
sFilePath=str
نهاية الملكية
الملكية العامة احصل على FilePath
FilePath=sFilePath
نهاية الملكية
'********************************************************************************************************************************************************************************* * ******************************
Private Sub ClassProperty() 'اقرأ كافة خصائص الفئة
sql=select * from ArticleClass حيث ClassID=& nClassID
تعيين rs=conn.execute(sql)
إن لم يكن rs.eof ثم
sClassName=trim(rs(ClassName))
nParentID=trim(rs(ParentID))
sParentPath=trim(rs(ParentPath))
nDepth=trim(rs(Depth))
nRootID=trim(rs(RootID))
nChild = تقليم (RS (الطفل))
nOrderID=trim(rs(OrderID))
sFilePath=trim(rs(FilePath))
نهاية إذا
تعيين RS=لا شيء
نهاية الفرعية
الوظيفة العامة FAddCheck() 'أضف وظيفة فحص إلى الفئة. نتيجة 0 تعني أنه تم تمرير الشيك، ونتيجة 1 تعني حدوث خطأ عند حدوث خطأ، قم بالخروج من الوظيفة واكتب معلومات الخطأ إلى الخطأ متغير ErrorStr
درجات الحرارة الخافتة
فادتشيك=0
إذا كان sClassName= إذن "اسم الفئة فارغ."
فادتشيك=1
ErrorStr=لا يمكن أن يكون اسم الفئة فارغًا!
وظيفة الخروج
آخر
إذا كان nParentID=، فإن "معرف الوالدين فارغ".
فادتشيك=1
ErrorStr=لا يمكن أن يكون معرف الوالدين فارغًا!
وظيفة الخروج
آخر
إذا كان nParentID<>0 إذن
تعيين temprs=conn.execute(حدد ClassID من ArticleClass حيث ClassID= & nParentID) 'الفئة الأصلية غير موجودة
إذا temprs.eof بعد ذلك
فادتشيك=1
ErrorStr=الفئة غير موجودة أو تم حذفها!
وظيفة الخروج
آخر
sql=select ClassID من ArticleClass حيث ClassName='& sClassName &' وParentID=& nParentID 'اسم فئة مكرر
تعيين rs=conn.execute(sql)
إن لم يكن rs.eof ثم
فادتشيك=1
ErrorStr=اسم فئة مكرر!
وظيفة الخروج
نهاية إذا
تعيين RS=لا شيء
نهاية إذا
settemprs=لا شيء
آخر
sql=select ClassID من ArticleClass حيث ClassName='& sClassName &' وParentID=& nParentID 'اسم فئة مكرر
تعيين rs=conn.execute(sql)
إن لم يكن rs.eof ثم
فادتشيك=1
ErrorStr=اسم فئة مكرر!
وظيفة الخروج
نهاية إذا
تعيين RS=لا شيء
نهاية إذا
نهاية إذا
نهاية إذا
وظيفة النهاية
إضافة SAD الفرعية العامة ()
خافت maxClassID، maxRootID
set rs = conn.execute(select Max(ClassID) from ArticleClass) 'ابحث عن أكبر معرف فئة في قاعدة البيانات الحالية، إذا لم تكن هناك بيانات، فاضبطه على 0. معرف الفئة المراد إدراجه هو أكبر معرف حاليًا بالإضافة إلى 1.
maxClassID=rs(0)
إذا كان فارغًا (maxClassID) إذن
maxClassID=0
نهاية إذا
تعيين RS=لا شيء
nClassID=maxClassID+1
set rs=conn.execute(select max(rootid) From ArticleClass) 'ابحث عن أكبر معرف جذر في قاعدة البيانات الحالية. إذا لم تكن هناك بيانات، فاضبطه على 0. معرف الجذر الذي سيتم إدراجه هو أكبر معرف جذر حالي 1
maxRootID=rs(0)
إذا كان فارغًا (maxRootID) إذن
معرف الجذر الأقصى=0
نهاية إذا
nRootID=maxRootID+1
set rs=conn.execute(select RootID,Depth,ParentPath,Child,OrderID From ArticleClass حيث ClassID= & nParentID) 'ابحث عن المعلومات المقابلة للفئة الأصلية
إن لم يكن rs.eof ثم
nRootID=trim(rs(Rootid)) 'معرف الجذر هو نفس معرف جذر الفئة الأصلية
sParentPath=trim(rs(ParentPath))& , &nParentID
إذا كان cint(trim(nParentID))>0 ثم "إذا كان معرف الأصل أكبر من 0، فهناك فئة أصل، لذلك تتم إضافة عمق الفئة المراد إدراجها إلى عمق الفئة الأصلية بمقدار 1. إذا كان معرف الأصل ليس أكبر من 0، الفئة الحالية التي سيتم إدراجها هي الفئة الجذرية ثم العمق هو 0
nDepth=cint(trim(rs(Depth)))+1
آخر
العمق = 0
نهاية إذا
إذا سينت(تريم(rs(الطفل)))>0 ثم
dimrsPrevOrderID
'احصل على معرف الطلب الخاص بالعمود الأخير على نفس مستوى هذا العمود
تعيين rsPrevOrderID=conn.execute(اختر Max(OrderID) من ArticleClass حيث ParentID= & ParentID)
معرف الطلب السابق=rsPrevOrderID(0)
'احصل على الحد الأقصى لمعرف الطلب للعمود الفرعي لنفس العمود الأصلي ولكن أكبر من هذا العمود. إذا كان أكبر من القيمة السابقة، استخدم هذه القيمة بدلاً من ذلك.
قم بتعيين rsPrevOrderID=conn.execute(اختر Max(OrderID) من ArticleClass حيث ParentPath مثل '& ParentPath & ,%')
إذا (ليس (rsPrevOrderID.bof و rsPrevOrderID.eof)) ثم
إذا لم يكن IsNull(rsPrevOrderID(0)) إذن
إذا كان rsPrevOrderID(0)>prevOrderID ثم
معرف الطلب السابق=rsPrevOrderID(0)
نهاية إذا
نهاية إذا
نهاية إذا
تعيين rsPrevOrderID = لا شيء
نهاية إذا
nOrderID=prevOrderID+1
آخر
nOrderID=0
sParentPath=0
العمق=0
نهاية إذا
تعيين RS=لا شيء
ن الطفل = 0
sql=insert في قيم ArticleClass (ClassID,ClassName,ParentID,ParentPath,Depth,RootID,Child,OrderID,FilePath) (& nClassID &,'& sClassName &',& nParentID &,'& sParentPath &',& nDepth &، & nRootID &،& nChild &،& nOrderID &،'& sFilePath &')
كون.تنفيذ (SQL)
إذا كان ParentID> 0 ثم
'تحديث عدد الأعمدة الفرعية لفئتها الأصلية
conn.execute (تحديث مجموعة ArticleClass Child=child+1 حيث ClassID=& nParentID)
'تحديث فرز هذا العمود وأرقام تسلسل الفرز للأعمدة الأكبر من هذه الحاجة وتحت هذه الفئة
إذا كان prevOrderID<> إذن
conn.execute (تحديث مجموعة ArticleClass OrderID=OrderID+1 حيث rootid= & nRootid & وOrderID>& prevOrderID & وClassID<>& nClassID)
نهاية إذا
نهاية إذا
نهاية الفرعية
الوظيفة العامة FEditCheck() 'وظيفة التحقق من تعديل الفئة، والنتيجة هي 0 يعني أنه تم اجتياز الفحص، و1 يعني حدوث خطأ. عند حدوث خطأ، قم بالخروج من الوظيفة واكتب معلومات الخطأ إلى متغير الخطأ ErrorStr
درجات الحرارة الخافتة
FEditCheck=0
إذا كان nClassID = فإن معرف الفئة فارغ
FEditCheck=1
ErrorStr=لا يمكن أن يكون معرف الفئة فارغًا!
وظيفة الخروج
آخر
إذا كان sClassName= إذن "اسم الفئة فارغ."
FEditCheck=1
ErrorStr=لا يمكن أن يكون اسم الفئة فارغًا!
وظيفة الخروج
آخر
إذا كان nParentID<>0 إذن
تعيين temprs=conn.execute(حدد ClassID من ArticleClass حيث ClassID= & nParentID) 'الفئة الأصلية غير موجودة
إذا temprs.eof بعد ذلك
فادتشيك=1
ErrorStr=الفئة غير موجودة أو تم حذفها!
وظيفة الخروج
آخر
تعيين rs=conn.execute(حدد ClassID من ArticleClass حيث ClassName='& sClassName &' وClassID<>& nClassID &and ParentID=& nParentID)
إذا لم يكن rs.eof ثم "اسم فئة مكرر".
FEditCheck=1
ErrorStr=اسم فئة مكرر!
وظيفة الخروج
نهاية إذا
تعيين RS=لا شيء
نهاية إذا
settemprs=لا شيء
نهاية إذا
نهاية إذا
نهاية إذا
وظيفة النهاية
Public Sub SEdit() 'تعديل الفئة
sql=update ArticleClass set ClassName='& sClassName &',FilePath='& sFilePath &' حيث ClassID=& nClassID
كون.تنفيذ (SQL)
نهاية الفرعية
الوظيفة العامة FDeleteCheck() 'وظيفة التحقق من حذف الفئة، والنتيجة هي 0 يعني أنه تم اجتياز الفحص، و1 يعني حدوث خطأ. عند حدوث خطأ، قم بالخروج من الوظيفة واكتب معلومات الخطأ إلى متغير الخطأ ErrorStr
FDeleteCheck=0 'احذف الكود هنا دون كتابة جزء الحذف المتتالي للمقالة. عند الحذف، يجب عليك حذفه بشكل متتالي.
إذا nClassID = إذن
FDeleteCheck=1
ErrorStr=لا يمكن أن يكون معرف الفئة المراد حذفه فارغًا!
وظيفة الخروج
آخر
تعيين rs=conn.execute(حدد الطفل من ArticleClass حيث ClassID=& nClassID)
إذا rs.bof وrs.eof ذلك الحين
FDeleteCheck=1
ErrorStr=الفئة غير موجودة أو تم حذفها!
وظيفة الخروج
آخر
إذا تقليم (rs (طفل))> 0 إذن
FDeleteCheck=1
ErrorStr=تحتوي هذه الفئة على فئات فرعية، يرجى حذف فئاتها الفرعية قبل حذف هذه الفئة!
وظيفة الخروج
نهاية إذا
نهاية إذا
نهاية إذا
وظيفة النهاية
حذف SD الفرعي العام ()
إذا كان nDepth>0، فقم بتعديل عدد الأطفال لمعرف الأصل
conn.execute (تحديث مجموعة ArticleClass Child=child-1 حيث الطفل>0 وClassID= & nParentID)
نهاية إذا
sql=delete من ArticleClass حيث ClassID=& nClassID
كون.تنفيذ (SQL)
نهاية الفرعية
الوظيفة العامةFErrStr()
FErrStr=ErrorStr
وظيفة النهاية
نهاية الفصل
%>
Index.asp
<%@LANGUAGE=صفحة كود VBSCRIPT=65001%>
<%
موقع المؤلف: www.guaishi.org
"البريد الإلكتروني: [email protected]
'س:514777880
جلسة.CodePage=65001
Response.Charset = utf-8
%>
<!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>
<html xmlns=http://www.w3.org/1999/xhtml>
<الرأس>
<meta http-equiv=Content-Type content=text/html;
<العنوان></العنوان>
<نوع النمط=نص/css>
الجسم {الهامش: 0؛ الحشو: 0؛ حجم الخط: 12 بكسل؛ لون الخلفية: #FFFFFF؛}
ul{ نوع نمط القائمة: لا يوجد هامش: 0 0 20 بكسل؛}
لي { المسافة البيضاء: الحشوة الآن: 0؛}
.childdiv{ الخلفية:url(images/dot.gif);background-repeat:repeat-y;}
فترة { المؤشر: المؤشر؛}
</نمط>
<نوع البرنامج النصي=نص/جافا سكريبت>
var xmlHttp; // تحديد متغير عام
var currentID=1;// قم بتعيين المعرف المحدد حاليًا. إذا لم يكن هذا المعرف موجودًا، فسيحدث خطأ js.
// عرض الفئة الوظيفة الرئيسية
//cid--معرف الطبقة للفئة الفرعية
// معرف - معرف الفئة
// معرف المنتج--[+] و[-] معرف الرمز
//fid-معرف رمز الفئة
وظيفة DivDisplay (cid،id،pid،fid)
{
if (GetId(cid).style.display=='') // التحكم في عرض الأيقونة عندما لا يتم عرض الفئة الفرعية
{
GetId(cid).style.display='none';
GetId(pid).src = 'images/ Closed.gif';
GetId(fid).src = 'images/folder.gif';
}
آخر // العمليات عند توسيع الفئات الفرعية
{
GetId(cid).style.display='';
GetId(pid).src = 'images/opened.gif';
GetId(fid).src = 'images/folderopen.gif';
إذا (GetId(cid).innerHTML==''||GetId(cid).innerHTML=='إرسال البيانات...')
{
GetId(cid).innerHTML='';
ShowChild(cid,id); // اتصل بوظيفة فئة العرض الفرعية
}
}
}
// نفس تأثير الوظيفة السابقة، ويعمل فقط على الفئة الأخيرة
وظيفة DivDisplay2 (cid،id،pid،fid)
{
إذا (GetId(cid).style.display=='')
{
GetId(cid).style.display='none';
GetId(pid).src = 'images/last Closed.gif';
GetId(fid).src = 'images/folder.gif';
}
آخر
{
GetId(cid).style.display='';
GetId(pid).src = 'images/lastopen.gif';
GetId(fid).src = 'images/folderopen.gif';
إذا (GetId(cid).innerHTML==''||GetId(cid).innerHTML=='إرسال البيانات...')
{
GetId(cid).innerHTML='';
ShowChild(cid,id);
}
}
}
// إضافة وظيفة الفئة
//معرف-معرف الفئة
وظيفة كلاسأد (معرف) {
if (GetId(p+id).src.indexOf(last)>0){ // أضف عملية للفئة الأخيرة
إذا (!GetId(p+id).onclick){
GetId(p+id).onclick=function (){DivDisplay2(c+id,id,p+id,f+id);}; // إضافة أحداث النقر لـ [+] و [-]
GetId(s+id).ondblclick=function (){DivDisplay2(c+id,id,p+id,f+id);}; // أضف حدث النقر المزدوج للنطاق الذي يعرض نص الفئة
GetId(p+id).src = 'images/lastopen.gif';
}
}
آخر{
if (!GetId(p+id).onclick){ // لا تقم بإضافة الفئة الأخيرة
GetId(p+id).onclick=function (){DivDisplay(c+id,id,p+id,f+id);};
GetId(s+id).ondblclick=function (){DivDisplay(c+id,id,p+id,f+id);};
GetId(p+id).src = 'images/opened.gif';
}
}
GetId(c+id).style.display='';
ShowChild(c+id,id);
}
// وظيفة تعديل الفئة
وظيفة ClassEdit(المعرف،اسم الفئة){
GetId(s+id).innerHTML=classname;
}
// حذف وظيفة الفئات ذات الفئات الفرعية المتعددة
وظيفة كلاسديل (معرف) {
ShowChild(c+id,id);
التحديد الحالي (المعرف الحالي، المعرف)
BrowseRight(id);
}
// حذف وظيفة الفئات ذات فئة فرعية واحدة فقط
وظيفة ClassDel1(معرف){
if (GetId(p+id).src.indexOf(last)>0){ // عندما تكون الفئة هي الفئة الأخيرة من الفئة الحالية
GetId(p+id).style.cursor=cursor; // قم بتعيين نمط تمرير الماوس للأيقونة
GetId(p+id).onclick=function (){}; // نظرًا لوجود فئة فرعية واحدة فقط بعد الحذف، لن يكون هناك المزيد من الفئات الفرعية، لذا قم بتغيير حدث النقر على الرمز إلى وظيفة فارغة
GetId(s+id).ondblclick=function (){}; // نفس ما ورد أعلاه
GetId(p+id).src = 'images/lastnochild.gif'; // إعدادات الرمز
}
آخر{
GetId(p+id).style.cursor=cursor; // حذف عملية الفئة غير الأخيرة
GetId(p+id).onclick=function (){};
GetId(s+id).ondblclick=function (){};
GetId(p+id).src = 'images/nofollow2.gif'; // يختلف إعداد الرمز هنا عن الإعداد السابق
}
ShowChild(c+id,id);
CurrentSelect(currentID,id);
BrowseRight(id);
}
// تمرير المعلمات إلى الإطار الصحيح
وظيفة تصفح اليمين (المعرف) {
CurrentSelect(currentID,id);
top.ContentFrame.location=../ArticleMain.asp?ClassID=+ id;
}
// وظيفة لتعيين الحالة المحددة للفئة
الدالة CurrentSelect(oldid,newid){
currentID=newid;
document.getElementById(s+oldid).style.backgroundColor=white;
document.getElementById(s+currentID).style.backgroundColor=#C0C0E9;
}
// إنشاء كائن XMLHttpRequest
الدالة CreateXMLHttpRequest()
{
إذا (window.ActiveXObject)
{
xmlHttp = new ActiveXObject(Microsoft.XMLHTTP);
}
آخر
{
xmlHttp = new XMLHttpRequest();
}
}
// وظيفة معالجة اياكس
// معرف، معرف الطبقة
// rid، معرف البيانات في الجدول
وظيفة ShowChild(cid,id)
{
CreateXMLHttpRequest();
إذا (xmlHttp)
{
xmlHttp.open('POST','child.asp',true);
xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
var SendData = 'id='+id;
xmlHttp.send(SendData);
xmlHttp.onreadystatechange=function()
{
إذا (xmlHttp.readyState==4)
{
إذا (xmlHttp.status==200)
{
GetId(cid).innerHTML = xmlHttp.responseText;
}
آخر
{
GetId(cid).innerHTML='خطأ:'+xmlHttp.statusText;
}
}
آخر
{
GetId(cid).innerHTML=جارٍ إرسال البيانات...;
}
}
}
آخر
{
GetId(cid).innerHTML='عذرًا، متصفحك لا يدعم XMLHttpRequest، يرجى استخدام IE6 أو أعلى! ';
}
}
// احصل على كائن الصفحة
// معرف، معرف الطبقة
الدالة GetId(المعرف)
{
إرجاع document.getElementById(id);
}
</script>
</الرأس>
<الجسم>
<!--#include file=../conn.asp-->
<%
"إظهار الدليل الجذر."
sql=select *,(اختر أعلى 1 ClassID من ArticleClass حيث العمق = 0 ترتيب حسب ClassID تنازلي) كمعرف أخير من ArticleClass حيث العمق = 0 ترتيب حسب ClassID
تعيين rs=conn.execute(sql)
إن لم يكن rs.eof ثم
استجابة.اكتب <ul>&vbcr
تفعل في حين لا rs.eof
إذا سينت(trim(rs(ClassID)))=cint(trim(rs(lastid))) ثم
إذا rs(Child)>0 ثم
Response.Write <li><img id='p&rs(ClassID)&' src=images/last Closed.gif onclick=DivDisplay2('c&rs(ClassID)&','&rs(ClassID)&','p&rs(ClassID)& ','f& rs(ClassID) &') style=cursor : hand align=absmiddle>
Response.Write <img src=images/folder.gif align=absmiddle id='f& rs(ClassID) &' /> <span id='s& Trim(rs(ClassID)) &' onclick=BrowseRight(& Trim(rs (معرف الفئة)) و) ondblclick=DivDisplay2('c&rs(ClassID)&','&rs(ClassID)&','p&rs(ClassID)&','f& rs(ClassID) &')>& rs(ClassName) &</span>
آخر
Response.Write <li><img id='p& rs(ClassID) &' src=images/lastnochild.gif align=absmiddle />
Response.Write <img src=images/folder.gif align=absmiddle id='f& rs(ClassID) &' /> <span id='s& Trim(rs(ClassID)) &' onclick=BrowseRight(& Trim(rs (ClassID)) &)>& rs(ClassName) &</span>
نهاية إذا
آخر
إذا rs(Child)>0 ثم
Response.Write <li><img id='p&rs(ClassID)&' src=images/ Closed.gif onclick=DivDisplay('c&rs(ClassID)&','&rs(ClassID)&','p&rs(ClassID)& ','f& rs(ClassID) &') style=cursor : hand align=absmiddle>
Response.Write <img src=images/folder.gif align=absmiddle id='f& rs(ClassID) &' /> <span id='s& Trim(rs(ClassID)) &' onclick=BrowseRight(& Trim(rs (معرف الفئة)) و) ondblclick=DivDisplay('c&rs(ClassID)&','&rs(ClassID)&','p&rs(ClassID)&','f& rs(ClassID) &')>& rs(ClassName) &</span>
آخر
Response.Write <li><img id='p& rs(ClassID) &' src=images/nofollow2.gif align=absmiddle />
Response.Write <img src=images/folder.gif align=absmiddle id='f& rs(ClassID) &' /> <span id='s& Trim(rs(ClassID)) &' onclick=BrowseRight(& Trim(rs (ClassID)) &)>& rs(ClassName) &</span>
نهاية إذا
نهاية إذا
إذا سينت(trim(rs(ClassID)))=cint(trim(rs(lastid))) ثم
استجابة.اكتب <div id='c&rs(ClassID)&' style='display:none;'></div>
آخر
Response.Write <div id='c&rs(ClassID)&' style='display:none;' class=childdiv></div>
نهاية إذا
استجابة.اكتب </li>&vbcr
rs.movenext
حلقة
استجابة.اكتب </ul>&vbcr
نهاية إذا
rs. Close
تعيين RS=لا شيء
conn. Close
تعيين كون = لا شيء
%>
</الجسم>
</html>