您好,登錄后才能下訂單哦!
本篇內容介紹了“怎么用jQuery+PHP+MySQL實現二級聯動下拉菜單”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
二級聯動下拉菜單選擇應用在在很多地方,比如說省市下拉聯動,商品大小類下拉選擇聯動。本文將通過實例講解使用jQuery+PHP+MySQL來實現大小分類二級下拉聯動效果。
先看下效果
前端技術程序開發數據庫
實現的效果就是當選擇大類時,小類下拉框里的選項內容也隨著改變。實現原理:根據大類的值,通過jQuery把值傳給后臺PHP處理,PHP通過查詢MySQl數據庫,得到相應的小類,并返回JSON數據給前端處理。
首先我們要建立兩個下拉選擇框,第一個是大類,第二個是小類。大類的值可以是預先寫好,也可以是從數據庫讀取。
<label>大類:</label>
<select name="bigname" id="bigname">
<option value="1">前端技術</option>
<option value="2">程序開發</option>
<option value="3">數據庫</option>
</select>
<label>小類:</label>
<select name="smallname" id="smallname">
</select>
先寫一個函數,獲取大類選擇框的值,并通過$.getJSON方法傳遞給后臺server.php,讀取后臺返回的JSON數據,并通過$.each方法遍歷JSON數據,將對應的值寫入一個option字符串,最后將option追加到小類里。
function getSelectVal(){
$.getJSON("server.php",{bigname:$("#bigname").val()},function(json){
var smallname = $("#smallname");
$("option",smallname).remove(); //清空原有的選項
$.each(json,function(index,array){
var option = "<option value='"+array['id']+"'>"+array['title']+"</option>";
smallname.append(option);
});
});
}
注意,在遍歷JSON數據追加之前一定要先將小類里的原有的項清空。清空選項的方法有兩種,一種是上文代碼中提到,還有一種更簡單直接的方法:
smallname.empty();
然后,在頁面載入后執行調用函數:
$(function(){
getSelectVal();
$("#bigname").change(function(){
getSelectVal();
});
});
在頁面初始的時候,下拉框是要設置選項的,所以在初始的時候就要調用getSelectVal(),而當大類選項改變時,也調用了getSelectVal()。
include_once("connect.php"); //鏈接數據庫
$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);
}
根據jQuery傳遞過來的大類的value值,構造SQL語句查詢分類表,最終輸出JSON數據。本站在未做特別說明的情況下所使用的PHP與MySQL連接,和查詢語句等均使用原始語句方法如mysql_query等,目的就是為了讓讀者能夠直觀的知曉數據的傳輸查詢。
最后附上MYSQL表結構:
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實現二級聯動下拉菜單”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。