jQuery+PHP+MySQL二級(jí)聯(lián)動(dòng)下拉菜單實(shí)例講解
二級(jí)聯(lián)動(dòng)下拉菜單選擇應(yīng)用在在很多地方,比如說省市下拉聯(lián)動(dòng),商品大小類下拉選擇聯(lián)動(dòng)。本文將通過實(shí)例講解使用jQuery+PHP+MySQL來實(shí)現(xiàn)大小分類二級(jí)下拉聯(lián)動(dòng)效果。
實(shí)現(xiàn)效果:當(dāng)選擇大類時(shí),小類下拉框里的選項(xiàng)內(nèi)容也隨著改變。
實(shí)現(xiàn)原理:根據(jù)大類的值,通過jQuery把值傳給后臺(tái)PHP處理,PHP通過查詢MySQl數(shù)據(jù)庫,得到相應(yīng)的小類,并返回JSON數(shù)據(jù)給前端處理。
XHTML
首先我們要建立兩個(gè)下拉選擇框,第一個(gè)是大類,第二個(gè)是小類。大類的值可以是預(yù)先寫好,也可以是從數(shù)據(jù)庫讀取。
<label>大類:</label> <select name="bigname" id="bigname"> <option value="1">前端技術(shù)</option> <option value="2">程序開發(fā)</option> <option value="3">數(shù)據(jù)庫</option> </select> <label>小類:</label> <select name="smallname" id="smallname"> <option value="1">flash</option> <option value="2">ps</option> </select>
jQuery
先寫一個(gè)函數(shù),獲取大類選擇框的值,并通過$.getJSON方法傳遞給后臺(tái)server.php,讀取后臺(tái)返回的JSON數(shù)據(jù),并通過$.each方法遍歷JSON數(shù)據(jù),將對(duì)應(yīng)的值寫入一個(gè)option字符串,最后將option追加到小類里。
function getSelectVal(){ $.getJSON("server.php",{bigname:$("#bigname").val()},function(json){ var smallname = $("#smallname"); $("option",smallname).remove(); //清空原有的選項(xiàng) $.each(json,function(index,array){ var option = "<option value='"+array['id']+"'>"+array['title']+"</option>"; smallname.append(option); }); }); }
注意,在遍歷JSON數(shù)據(jù)追加之前一定要先將小類里的原有的項(xiàng)清空。清空選項(xiàng)的方法有兩種,一種是上文代碼中提到,還有一種更簡(jiǎn)單直接的方法:
smallname.();
然后,在頁面載入后執(zhí)行調(diào)用函數(shù):
$(function(){ getSelectVal(); $("#bigname").change(function(){ getSelectVal(); }); });
在頁面初始的時(shí)候,下拉框是要設(shè)置選項(xiàng)的,所以在初始的時(shí)候就要調(diào)用getSelectVal(),而當(dāng)大類選項(xiàng)改變時(shí),也調(diào)用了getSelectVal()。
PHP
include_once("connect.php"); //鏈接數(shù)據(jù)庫 $bigid = $_GET["bigname"]; if(isset($bigid)){ $q=mysql_query("select * from catalog where cid = $bigid"); while($row=mysql_fetch_array($q)){ $select[] = array("id"=>$row[id],"title"=>$row[title]); } echo json_encode($select); }
根據(jù)jQuery傳遞過來的大類的value值,構(gòu)造SQL語句查詢分類表,最終輸出JSON數(shù)據(jù)。本站在未做特別說明的情況下所使用的PHP與MySQL連接,和查詢語句等均使用原始語句方法如mysql_query等,目的就是為了讓讀者能夠直觀的知曉數(shù)據(jù)的傳輸查詢。
最后附上MYSQL表結(jié)構(gòu):
CREATE TABLE `catalog` ( `id` mediumint(6) NOT NULL auto_increment, `cid` mediumint(6) NOT NULL default '0', `title` varchar(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
以上就是介紹了jQuery+PHP+MySQL三者結(jié)合如何實(shí)現(xiàn)的二級(jí)聯(lián)動(dòng)下拉菜單,程序還有一些不足之處,需要繼續(xù)完善,希望本文可以給大家一點(diǎn)啟發(fā)。
- jquery無限級(jí)聯(lián)下拉菜單簡(jiǎn)單實(shí)例演示
- jQuery實(shí)現(xiàn)非常實(shí)用漂亮的select下拉菜單選擇效果
- jquery實(shí)現(xiàn)鼠標(biāo)滑過顯示二級(jí)下拉菜單效果
- jQuery結(jié)合CSS制作漂亮的select下拉菜單
- jQuery實(shí)現(xiàn)精美的多級(jí)下拉菜單特效
- 用jquery實(shí)現(xiàn)的一個(gè)超級(jí)簡(jiǎn)單的下拉菜單
- jquery仿京東導(dǎo)航/仿淘寶商城左側(cè)分類導(dǎo)航下拉菜單效果
- 來自國外的30個(gè)基于jquery的Web下拉菜單
- 用jquery實(shí)現(xiàn)下拉菜單效果的代碼
- jquery實(shí)現(xiàn)二級(jí)導(dǎo)航下拉菜單效果實(shí)例
相關(guān)文章
22點(diǎn)關(guān)于jquery性能優(yōu)化的建議
討論 jQuery 和 javascript 性能的文章并不罕見。然而,本文我計(jì)劃總結(jié)一些速度方面的技巧和我本人的一些建議,來提升你的 jQuery 和 javascript 代碼。好的代碼會(huì)帶來速度的提升??焖黉秩竞晚憫?yīng)意味著更好的用戶體驗(yàn)。2014-05-05JQuery 進(jìn)入頁面默認(rèn)給已賦值的復(fù)選框打鉤
這篇文章主要介紹了JQuery 進(jìn)入頁面默認(rèn)給已賦值的復(fù)選框打鉤的實(shí)現(xiàn)代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-03-03Jquery實(shí)現(xiàn)圖片預(yù)加載與延時(shí)加載的方法
這篇文章主要介紹了Jquery實(shí)現(xiàn)圖片預(yù)加載與延時(shí)加載的方法,分別介紹了原生javascript與jQuery插件實(shí)現(xiàn)圖片的預(yù)加載及延遲加載的方法,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12jquery實(shí)現(xiàn)側(cè)邊欄左右伸縮效果的示例
下面小編就為大家分享一篇jquery實(shí)現(xiàn)側(cè)邊欄左右伸縮效果的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2017-12-12jquery實(shí)現(xiàn)點(diǎn)擊彈出可放大居中及關(guān)閉的對(duì)話框(附demo源碼下載)
這篇文章主要介紹了jquery實(shí)現(xiàn)點(diǎn)擊彈出可放大居中及關(guān)閉的對(duì)話框,具有可拖動(dòng)、放大、居中及關(guān)閉等功能,提供了2種對(duì)話框模式供讀者選擇,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2016-05-05jBox 2.3基于jquery的最新多功能對(duì)話框插件 常見使用問題解答
jBox 是一款基于 jQuery 的多功能對(duì)話框插件,能夠?qū)崿F(xiàn)網(wǎng)站的整體風(fēng)格效果,給用戶一個(gè)新的視覺享受。2011-11-11jQuery 處理網(wǎng)頁內(nèi)容的實(shí)現(xiàn)代碼
改變頁面內(nèi)容應(yīng)該算是Javascript最常用的功能,這包括更改已經(jīng)存在的頁面元素或者添加新的HTML元素。2010-02-02