私は B 型で、動画を使って問題を解決する方法がわからないので、わかりにくい言葉を使って書かなければなりません。
通常の状況では、この状況はセカンダリ ディレクトリに役立ちます。現在、Web サイトにはさまざまな種類の JS が流通していますが、それらはすべて私のような人を混乱させる JS コードにすぎません。 。一斉に... 一斉に配列。
早速、本題に入りましょう。
まずテーブルを作成する必要があります。もちろん、テーブル内にディレクトリがすでに作成されている場合は、この手順を省略できます。ただし、注意していただきたいことが 1 つあります。この表は私の例の基礎になっています (これが正しいかどうかはわかりません)。
使用するテーブルは ACCESS であるため、テーブルの作成には進みません。これら 2 つのテーブル (データベース名: db.mdb) の対応するフィールド名のみをリストします。
テーブル名:type_tree - 親クラスフィールド:type_id(自動番号) type_name(カテゴリ名)
テーブル名:s_type - サブクラスフィールド:id(自動番号) s_name(サブカテゴリ名) type_id(親クラスID) - 親クラスに対応テーブルでは、
データベース接続が確立されました:
Dim conn, connStrSet conn = server.CreateObject("ADODB.Connection")connStr = "Provider = Microsoft.jet.oledb.4.0;"connStr = connStr & "Data Source = " & server .mappath("db.mdb")Conn.Open connStr
上記のコードはすべて一般的に使用されるコードなので、説明する必要はありません。 。
ここからは実際のアクションに移ります:)
二次コンテキスト メニューは通常、ドロップダウン メニューで作成されますが、ここでも例外ではなく、ドロップダウン メニューを使用して作成します。
しかし、ここでは違うことが一つあります。
ジャンプ メニューを使用することは非常に重要です。成功はメニューが正しく使用されるかどうかにかかっています。
以下はこのジャンプ メニューのコードです。
<select name="first" onChange="MM_jumpMenu('parent',this,0)">
<%
sql = "[type_tree]から[type_id]、[type_name]を選択します。"
set rs = conn.execute(sql)'親クラスのIDと名前を取得します
rs.eof または rs.bof の場合
response.write "<option>-----</option>" 'レコードがない場合は-----を表示
それ以外
while not(rs.eof または rs.bof) ' レコードがある場合は、親の名前をリストしてドロップダウンを形成します。
response.write ("<オプション値='?sec= & rs(0) & "'")
if cstr(rs(0)) = request.querystring("sec") then
応答.書き込み「選択済み」
終了する場合
response.write (">" & rs(1) & "</option>")
rs.movenext
曲がります
rs.movefirst '後で使用するためにカーソルを最初の項目に移動します。
終了する場合
%>
</選択>
ああ、ところで、投稿するのを忘れていたコードがもう 1 つあります。これは、私の不注意を見てください。
追加する場合は次のとおりです。
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (復元) selObj.selectedIndex=0;
}
//-->
</script>
上記のコードは <head> に貼り付けられ、DW によって生成されます。意味がよくわからないのでコメントアウトしません。:D
これはメニューの 2 番目の部分であり、ジャンプ メニューではなく単なるリストであるため、コードと上記のジャンプ メニューの唯一の違いは onchange 関数です。
以下はこのメニューのコードです。ループと判定は上記よりも複雑なので、皆さんもしっかり読んでください。
<select name="2">
<%if rs.eof または rs.bof then
response.write ("<オプション>--------</オプション>")
それ以外
if request.querystring("sec") = "" then 'ジャンプ後の秒値を取得します
temp=rs(0) 空の場合は、temp の値を最初のレコードの値に設定します。
それ以外
temp = request.querystring("sec") 'それ以外の場合は受信した値になります
終了する場合
subsql = "[s_type] から [s_name] を選択します。 where type_id='"&temp&"'"
set subrs = conn.execute(subsql) 'データが temp であるすべてのレコードをリストします
subrs.eof または subrs.bof の場合
response.write ("<オプション>-----</オプション>")
'レコードがない場合はこのリストに「-----」を表示
それ以外
while not(subrs.eof または subrs.bof)' それ以外の場合は、ループを使用して、条件を満たすすべてのレコードをリストします。
response.write ("<option value=" & subrs(0) & ">" & subrs(0) & "</option>")
サブズ.ムーブネクスト
曲がります
終了する場合
end if
'すべてのレコードセットを閉じる
購読者.閉じる
subrs = 何も設定しない
rs.close
setrs=なし
接続閉じる
conn = 何も設定しない
%>
</select>
ここまでで、このセカンダリメニューの作成プロセスは説明したように非常に簡単です。
理解できない場合は、もう話すのをやめてください。
専門家が喜んでアドバイスいたします。