أنا شخص من النوع B ولا أعرف كيفية استخدام مقاطع الفيديو لحل المشكلة، لذلك يجب أن أستخدم كلماتي المربكة في الكتابة.
في الظروف العادية، يكون هذا الوضع مفيدًا للأدلة الثانوية. هناك أنواع عديدة من JS يتم تداولها على مواقع الويب الآن، ولكنها جميعها ليست أكثر من رموز JS التي تجعل الأشخاص مثلي في حيرة من أمرهم. . الكل مرة واحدة من أجل...مصفوفة الكل مرة واحدة.
دون مزيد من اللغط، دعونا نصل إلى هذه النقطة.
عليك أولاً إنشاء جدول. بالطبع، إذا تم إنشاء الدليل في جدولك بالفعل، فيمكن حذف هذه الخطوة. ولكن هناك شيء واحد يجب أن أذكرك به: هذا الجدول هو أساس مثالي (لا أعرف إذا كان هذا صحيحًا).
نظرًا لأن الجدول الذي أستخدمه هو ACCESS، فلن أبدأ في إنشاء الجدول، وسأقوم فقط بإدراج أسماء الحقول المقابلة لهذين الجدولين (اسم قاعدة البيانات: db.mdb):
اسم الجدول: type_tree - حقل الفئة الأصلية: type_id (الرقم التلقائي) type_name (اسم الفئة)
اسم الجدول: s_type - حقل الفئة الفرعية: المعرف (الرقم التلقائي) s_name (اسم الفئة الفرعية) type_id (معرف الفئة الأصلية) - والمتوافق مع الفئة الأصلية الجدول،
تم الآن إنشاء اتصال قاعدة البيانات:
Dim conn, connStrSet conn = server.CreateObject("ADODB.Connection")connStr = "Provider = Microsoft.jet.oledb.4.0;"connStr = connStr & "مصدر البيانات = " & server .mappath("db.mdb")Conn.Open connStr
ليست هناك حاجة لشرح الرموز المذكورة أعلاه، فكلها رموز شائعة الاستخدام. .
والآن إلى العمل الحقيقي :)
يتم إنشاء قوائم السياق الثانوية عمومًا باستخدام قوائم منسدلة، وأنا لست استثناءً هنا، كما أنني أستخدم القوائم المنسدلة لإنشائها.
ولكن هناك شيء واحد مختلف هنا.
يستخدم المرء قائمة الانتقال وهذا مهم جدًا ويعتمد النجاح كليًا على ما إذا كانت القائمة تُستخدم بشكل صحيح أم لا.
يوجد أدناه رمز لقائمة الانتقال هذه!
<select name="first" onChange="MM_jumpMenu('parent',this,0)">
<%
sql = "اختر [type_id]،[type_name] من [type_tree]"
set rs = conn.execute(sql)'احصل على معرف واسم الفئة الأصلية
إذا rs.eof أو rs.bof ذلك الحين
Response.write "<option>-----</option>" 'إذا لم يكن هناك سجل، قم بعرض -----
آخر
بينما لا (rs.eof أو rs.bof) 'إذا كان هناك سجل، فقم بإدراج اسم الأصل لتشكيل قائمة منسدلة.
Response.write ("<option value='?sec=" & rs(0) & "'")
إذا كان cstr(rs(0)) = request.querystring("sec") إذن
استجابة.اكتب "المحددة"
نهاية إذا
Response.write (">" & rs(1) & "</option>")
rs.movenext
com.wind
rs.movefirst 'حرك المؤشر إلى العنصر الأول لاستخدامه لاحقًا.
نهاية إذا
%>
</حدد>
أوه، بالمناسبة، هناك جزء آخر من التعليمات البرمجية نسيت نشره، وهو مفتاح الانتقال إلى القائمة.
أضف إلى الإضافة:
<script language="JavaScript" type="text/JavaScript">
<!--
وظيفة MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
إذا (استعادة) selObj.selectedIndex=0;
}
//-->
</script>
تم لصق الكود أعلاه في <head> وتم إنشاؤه بواسطة DW، ولا أفهم تمامًا ما يعنيه، لذا لن أعلق عليه:D
الآن هو الجزء الثانوي من القائمة. هذه ليست قائمة انتقال، إنها مجرد قائمة، وبالتالي فإن الفرق الوحيد بين الكود وقائمة الانتقال أعلاه هو وظيفة onchange.
ما يلي هو رمز هذه القائمة، نظرًا لأن الحلقة والحكم أكثر تعقيدًا مما سبق، فيجب على الجميع قراءته بوضوح.
<اختر الاسم = "الثانية">
<%if rs.eof أو rs.bof إذن
Response.write ("<option>--------</option>")
آخر
إذا request.querystring("sec") = "" ثم "احصل على قيمة sec بعد القفزة."
temp=rs(0) إذا كان فارغًا، قم بتعيين قيمة temp إلى قيمة السجل الأول
آخر
temp = request.querystring("sec") 'وإلا ستكون القيمة المستلمة
نهاية إذا
subsql = "اختر [s_name] من [s_type] حيث type_id='"&temp&"'"
set subrs = conn.execute(subsql) 'قم بإدراج كافة السجلات التي تكون بياناتها مؤقتة
إذا subrs.eof أو subrs.bof ثم
Response.write ("<option>-----</option>")
'إذا لم يكن هناك سجل، قم بعرض "-----" في هذه القائمة
آخر
بينما not(subrs.eof أو subrs.bof)' بخلاف ذلك، استخدم حلقة لسرد كافة السجلات التي تستوفي الشروط.
Response.write ("<option value=" & subrs(0) & ">" & subrs(0) & "</option>")
subrs.movenext
com.wind
نهاية إذا
ينتهي إذا
"أغلق كافة مجموعات السجلات."
subrs.إغلاق
تعيين subrs = لا شيء
rs. Close
setrs=لا شيء
conn. Close
مجموعة كون = لا شيء
%>
</select>
حتى الآن، اكتملت عملية إنشاء هذه القائمة الثانوية، وهي بسيطة جدًا كما شرحت.
إذا كنت لا تفهم، من فضلك توقف عن الحديث، على أي حال، لا أعرف ماذا أقول بعد الآن.
الخبراء على استعداد لتقديم المشورة لك.