當前位置:首頁 » 操作系統 » 資料庫聯動菜單

資料庫聯動菜單

發布時間: 2025-01-01 05:23:27

❶ dreamweaver 怎麼製作三級聯動下拉菜單 (資料庫MDB格式的)

建議先不涉及資料庫,不然會非常麻煩。先介紹一個二級下拉,然後可以自己拓展為三級。

一般情況下這種情況是來對二級的目錄有用,對於現在網站流傳的JS好多種,但都無外乎那些令像我這樣的菜鳥暈頭轉向的JS代碼。。一下子for...一下子array的。

首先得建一個表,當然,如果你的表中就已經建好目錄的話,那這一步可以省略了。但有一點要提醒:這個表是我這個例子的使用依據(不知道這樣說對不對)。

由於我用的表是ACCESS的,所以建表就不說了,只列出這個兩個表的相應的欄位名(資料庫名:db.mdb):

表名:type_tree ——父類
欄位:type_id(自動編號) type_name(類別名稱)

表名:s_type ——子類
欄位:id(自動編號) s_name(子類別名稱) type_id(父類ID)——與父類表相對應

現在是建立資料庫連接:

Dim conn, connStr

Set 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 = "select [type_id],[type_name] from [type_tree]"
set rs = conn.execute(sql)'取得父類的ID及名稱
if rs.eof or rs.bof then
response.write "<option>-----</option>" '如果沒有記錄,就顯示-----
else
while not(rs.eof or rs.bof) '有記錄,就將父名稱列出來,形成下拉。
response.write ("<option value='?sec=" & rs(0) & "'")
if cstr(rs(0)) = request.querystring("sec") then
response.write "selected"
end if
response.write (">" & rs(1) & "</option>")
rs.movenext
wend
rs.movefirst '將游標移到第一條,以備下面之用。
end if
%>
</select>

哦,對了,還有一段代碼忘了貼出來了,這個是跳轉菜音的關鍵啊,看我粗心的!補上補上:

<script language="javascript" type="text/javascript">
<!--
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
//-->
</script>

以上代碼貼到<head>里,是DW生成,我看不太懂什麼意思,所以不註解了。現在是菜單的二級部分,這里不是用跳轉菜單,只是一個列表罷了,所以代碼跟上面的跳轉菜單也就差一個onchange這個函數。

以下是這個菜單的代碼,由於循環跟判斷相對上面來說復雜一些,大夥要看清楚一點哦。

<select name="second">

<%if rs.eof or rs.bof then
response.write ("<option>--------</option>")
else
if request.querystring("sec") = "" then '獲取跳轉之後的sec值
temp=rs(0) 如果為空,就把temp的值設為第一條記錄的值
else
temp = request.querystring("sec") '否則就為收到的值
end if
subsql = "select [s_name] from [s_type] where type_id='"&temp&"'"
set subrs = conn.execute(subsql) '列出一切資料為temp的記錄
if subrs.eof or subrs.bof then
response.write ("<option>-----</option>")
'如果沒有記錄,則在這個列表中顯示"-----"
else
while not(subrs.eof or subrs.bof)'否則就用循環列出一切符合條件的記錄。
response.write ("<option value=" & subrs(0) & ">" & subrs(0) & "</option>")
subrs.movenext
wend
end if
end if
'關閉所有的記錄集
subrs.close
set subrs = nothing
rs.close
set rs = nothing
conn.close
set conn = nothing
%>
</select>

到現在為止,已經將這個二級菜單的制過程做完了,很簡單的一個看把我給說的。大家看不懂再說吧,反正我已經不知道該怎麼說了。高手們不吝賜教啊。

❷ MySQL實現三級聯動選擇菜單輕松搭建樹形菜單結構mysql三級聯動

MySQL實現三級聯動選擇菜單,輕松搭建樹形菜單結構!
隨著互聯網規模的不斷擴大,網站的復雜度也在不斷提高,樹形菜單結構成為了網站設計中常見的一種形式。為了方便用戶的選擇,常常需要設計出多級菜單,以便用戶快速找到自己需要的內容。本文將介紹如何使用MySQL實現三級聯動選擇菜單,並且輕松地搭建出樹形菜單結構。
一、資料庫設計
首先需要設計好資料庫結構。在本案例中,我們將設計一個名為「region」的資料庫,其中包含三個表:「province」、「city」和「district」,分別代表省份、城市和區/縣。每一個表都包含以下欄位:id、name和parent_id,其中id為主鍵,name為地區名,parent_id為該地區的上一級地區的id。
CREATE TABLE `province` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘省份id’,
`name` varchar(20) NOT NULL COMMENT ‘省份名稱’,
`parent_id` int(10) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘上級行政區劃id’,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=’省份表’;
CREATE TABLE `city` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘城市id’,
`name` varchar(30) NOT NULL COMMENT ‘城市名稱’,
`parent_id` int(10) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘省份id’,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=’城市表’;
CREATE TABLE `district` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘區縣id’,
`name` varchar(50) NOT NULL COMMENT ‘區縣名稱’,
`parent_id` int(10) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘城市id’,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=’區縣表’;
二、插入數據
接下來需要插入一些數據。假設我們要插入北京市的信息,那麼可以按照以下方式進行插入:
INSERT INTO `province` (`id`, `name`, `parent_id`) VALUES (1, ‘北京市’, 0);
INSERT INTO `city` (`id`, `name`, `parent_id`) VALUES (1, ‘北京市’, 1);
INSERT INTO `district` (`id`, `name`, `parent_id`) VALUES (1, ‘東城區’, 1);
在插入完數據後,可以通過SELECT語句來查看插入的結果:
SELECT * FROM `province` WHERE `name` = ‘北京市’;
SELECT * FROM `city` WHERE `name` = ‘北京市’;
SELECT * FROM `district` WHERE `name` = ‘東城區’;
三、實現頁面
在完成資料庫設計和數據插入之後,接下來需要在頁面上實現三級聯動選擇菜單。在本案例中,我們選擇使用HTML+JavaScript來實現這個功能。
在HTML文件中,我們需要先創建三個菜單框,代碼如下:
請選擇省份

請選擇城市

請選擇區縣

然後,在JavaScript文件中,我們需要編寫以下代碼,來實現根據用戶選擇的省份,動態改變城市和區縣的選項:
$(document).ready(function() {
$(“#province”).change(function() {
var provinceid = $(this).val();
if (provinceid != “”) {
$.ajax({
type: “POST”,
url: “getCity.php”,
data: “provinceid=”+provinceid,
cache: false,
success: function(html) {
$(“#city”).html(html);
$(“#district”).html(“請選擇區縣”);
}
});
} else {
$(“#city”).html(“請選擇城市”);
$(“#district”).html(“請選擇區縣”);
}
});

$(“#city”).change(function() {
var cityid = $(this).val();
if (cityid != “”) {
$.ajax({
type: “POST”,
url: “getDistrict.php”,
data: “cityid=”+cityid,
cache: false,
success: function(html) {
$(“#district”).html(html);
}
});
} else {
$(“#district”).html(“請選擇區縣”);
}
});
});
這段JavaScript代碼中,我們使用了jQuery來實現AJAX非同步請求,並且根據用戶選擇的省份和城市,調用getCity.php和getDistrict.php來查詢資料庫中對應的城市和區縣信息,然後將結果動態顯示在相應的菜單框中。具體的php代碼如下:
getCity.php
$provinceid = $_POST[‘provinceid’];
$sql = “SELECT * FROM `city` WHERE `parent_id` = ‘”.$provinceid.”‘”;
$result = mysql_query($sql);
echo “請選擇城市”;
while ($row = mysql_fetch_array($result)) {
echo “”.$row[‘name’].””;
}
getDistrict.php
$cityid = $_POST[‘cityid’];
$sql = “SELECT * FROM `district` WHERE `parent_id` = ‘”.$cityid.”‘”;
$result = mysql_query($sql);
echo “請選擇區縣”;
while ($row = mysql_fetch_array($result)) {
echo “”.$row[‘name’].””;
}
四、測試
我們需要將HTML文件和JavaScript文件放到伺服器上,並且測試其效果。在測試過程中,需要注意以下幾點:
1. 需要在伺服器上運行MySQL,並且創建好region資料庫,並且插入了一些測試數據。
2. 需要在JavaScript文件中修改getCity.php和getDistrict.php文件的路徑(如果不在同一目錄下的話),以保證AJAX非同步請求能夠正確調用。
3. 在測試之前需要先引入jQuery庫,並且保證能夠正常訪問
下面是測試結果的示例圖,可以看到三級聯動菜單已經成功實現:
![MySQL實現三級聯動選擇菜單][1]
總結
通過本文的介紹,可以看到使用MySQL實現三級聯動選擇菜單並不是很難。只需要在資料庫中設計好地區結構,並且編寫一些簡單的HTML和JavaScript代碼,就可以輕松地搭建出樹形菜單結構,幫助用戶快速找到需要的內容。
參考資料:
1. jQuery官網:http://jquery.com/
2. W3Schools:http://www.w3schools.com/
3. MySQL官網:http://www.mysql.com/
[1]: https://img-blog.csdn.net/20170824103348579?watermark/2/text//font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/85/progressive/true

❸ PHP+MySQL資料庫查詢四級下拉菜單聯動問題。在網上看了很多例子,但自身

比如你有一個城市表 city,有欄位id和city_name, 代碼如下:
<?php
$sql = 'select * from city';

$res = mysql_query($sql);
$cities = array();
while ($row = mysql_fetch_assoc($res) )
{
$cities[$row['id']] = $row['name'];
}
?>

<select name="PubForm[city]" class="sgselect scate" id="city">
<option selected="selected" value="">-- 請選擇城市 --</option>
<?php foreach ( $cities as $id=>$city ) { ?>
<option value="<?php echo $id; ?>"><?php echo $city; ?></option>
</select>

原理就是從mysql查詢出所有城市的數據並弄成一個數組$cities ,然後循環$cities,按照下拉表單的格式輸出option選項就好了

熱點內容
安卓手機網路卡如何解決 發布:2025-01-04 03:22:46 瀏覽:306
安卓如何在手機上安裝多個應用 發布:2025-01-04 03:09:13 瀏覽:213
安卓手機官服怎麼設置 發布:2025-01-04 03:09:11 瀏覽:135
aidlandroid 發布:2025-01-04 02:50:16 瀏覽:836
python的單元測試框架 發布:2025-01-04 02:48:45 瀏覽:256
筆記本電腦配置怎麼看是幾代 發布:2025-01-04 02:35:29 瀏覽:504
安卓如何換皮換賬號第五人格 發布:2025-01-04 02:25:24 瀏覽:864
金蝶資料庫在哪 發布:2025-01-04 02:23:13 瀏覽:993
安卓手機的串號在哪裡 發布:2025-01-04 02:16:34 瀏覽:222
wpa加密演算法選哪個 發布:2025-01-04 02:12:18 瀏覽:400