Ajax商品分類三級(jí)聯(lián)動(dòng)的簡(jiǎn)單實(shí)現(xiàn)(案例)
思路分析:
效果:當(dāng)頁(yè)面加載時(shí),利用ajax異步向后臺(tái)請(qǐng)求數(shù)據(jù),加載一級(jí)商品類別,當(dāng)選擇一級(jí)商品時(shí)加載二級(jí)商品,選擇二級(jí)商品加載三級(jí)商品。
實(shí)現(xiàn):
1、當(dāng)拿到數(shù)據(jù)后加載pid為0的商品,并動(dòng)態(tài)創(chuàng)建option將商品追加到一級(jí)菜單中,并設(shè)置value值
2、當(dāng)選擇一級(jí)商品時(shí)加載pid=當(dāng)前id的商品,并創(chuàng)建option將商品追加到二級(jí)菜單中,并設(shè)置value值
3、當(dāng)選擇二級(jí)商品時(shí)加載pid=當(dāng)前id的商品,并創(chuàng)建option將商品追加到三級(jí)菜單中,并設(shè)置value值
頁(yè)面效果:

$(function(){
//請(qǐng)求路徑
var url="03goods.php";
//option默認(rèn)內(nèi)容
var option="<option value='0'>未選擇</option>";
//獲取jq對(duì)象
var $sel1=$(".sel1");
var $sel2=$(".sel2");
var $sel3=$(".sel3");
//自動(dòng)生成一個(gè)<option>元素
function createOption(value,text){
var $option=$("<option></option>");
$option.attr("value",value);
$option.text(text);
return $option;
}
//加載數(shù)據(jù)
function ajaxSelect($select,id){
//get請(qǐng)求
$.get(url,{"pid":id},function(data){
$select.html(option);
for(var k in data ){
$select.append(createOption(data[k].id,data[k].name));
}
},"json");
}
//自動(dòng)加載第一個(gè)下拉菜單
ajaxSelect($sel1,"0");
//選擇第一個(gè)下拉菜單時(shí)加載第二個(gè)
$sel1.change(function(){
var id=$sel1.val();
if(id=="0"){
$sel2.html(option);
$sel3.html(option);
}else{
ajaxSelect($sel2,id);
}
});
//選擇第二個(gè)下拉菜單時(shí)加載第三個(gè)
$sel2.change(function(){
var $id=$sel2.val();
if($id=="0"){
$sel3.html(option);
}else{
ajaxSelect($sel3,$id);
}
});
});
后臺(tái)代碼:
<?php
header('Content-Type:text/html; charset=utf-8');
//數(shù)據(jù)
$arr=array(
//array(分類id,分類名,分類的父id)
array('id'=>'1','name'=>'數(shù)碼產(chǎn)品','pid'=>'0'),
array('id'=>'2','name'=>'家電','pid'=>'0'),
array('id'=>'3','name'=>'書籍','pid'=>'0'),
array('id'=>'4','name'=>'服裝','pid'=>'0'),
array('id'=>'5','name'=>'手機(jī)','pid'=>'1'),
array('id'=>'6','name'=>'筆記本','pid'=>'1'),
array('id'=>'7','name'=>'平板電腦','pid'=>'1'),
array('id'=>'8','name'=>'智能手機(jī)','pid'=>'5'),
array('id'=>'9','name'=>'功能機(jī)','pid'=>'5'),
array('id'=>'10','name'=>'電視機(jī)','pid'=>'2'),
array('id'=>'11','name'=>'電冰箱','pid'=>'2'),
array('id'=>'12','name'=>'智能電視','pid'=>'10'),
array('id'=>'13','name'=>'編程書籍','pid'=>'3'),
array('id'=>'14','name'=>'JavaScript','pid'=>'13'),
);
//獲取指定分類的商品
function getByPid($arr,$pid){
$result=array();
foreach($arr as $v){
if($v['pid']==$pid){
$result[]=$v;
}
}
return $result;
}
//獲取請(qǐng)求參數(shù)
$pid=isset($_GET['pid'])?$_GET['pid']:'0';
$result=getByPid($arr,$pid);
//輸出json數(shù)據(jù)
echo json_encode($result);
?>
以上這篇Ajax商品分類三級(jí)聯(lián)動(dòng)的簡(jiǎn)單實(shí)現(xiàn)(案例)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- PHP+Mysql+Ajax+JS實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng)
- AJAX省市區(qū)三級(jí)聯(lián)動(dòng)下拉菜單(java版)
- ajax三級(jí)聯(lián)動(dòng)下拉菜單效果
- ajax三級(jí)聯(lián)動(dòng)的實(shí)現(xiàn)方法
- ajax實(shí)現(xiàn)無(wú)刷新省市縣三級(jí)聯(lián)動(dòng)
- ajax實(shí)現(xiàn)三級(jí)聯(lián)動(dòng)的基本方法
- Ajax+php實(shí)現(xiàn)商品分類三級(jí)聯(lián)動(dòng)
- ajax實(shí)現(xiàn)省市三級(jí)聯(lián)動(dòng)效果
- 簡(jiǎn)單實(shí)現(xiàn)ajax三級(jí)聯(lián)動(dòng)效果
- AJAX實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)效果
相關(guān)文章
jQuery通過(guò)Ajax向PHP服務(wù)端發(fā)送請(qǐng)求并返回JSON數(shù)據(jù)
這篇文章主要介紹了jQuery通過(guò)Ajax向PHP服務(wù)端發(fā)送請(qǐng)求并返回JSON數(shù)據(jù),設(shè)計(jì)到的知識(shí)點(diǎn)有jquery、ajax、php、json,感興趣的朋友一起學(xué)習(xí)下jquery ajax 返回json2015-10-10
ajax智能提示+textbox動(dòng)態(tài)生成下拉框示例代碼
ajax智能提示+textbox動(dòng)態(tài)生成下拉框,下面有個(gè)不錯(cuò)的示例,感興趣的朋友可以參考下,希望對(duì)大家有所幫助2013-12-12
一個(gè)簡(jiǎn)單的ajax上傳進(jìn)度顯示示例
這篇文章主要介紹了一個(gè)簡(jiǎn)單的ajax上傳進(jìn)度顯示示例,需要的朋友可以參考下2014-02-02
淺析IE針對(duì)Ajax請(qǐng)求結(jié)果的緩存問(wèn)題
我們通過(guò)一個(gè)ASP.NET MVC應(yīng)用來(lái)重現(xiàn)IE針對(duì)Ajax請(qǐng)求結(jié)果的緩存。在一個(gè)空ASP.NET MVC應(yīng)用中我們定義了如下一個(gè)默認(rèn)的HomeController,其中包含一個(gè)返回當(dāng)前時(shí)間的Action方法GetCurrentTime。2015-09-09
AJAX+Servlet實(shí)現(xiàn)的數(shù)據(jù)處理顯示功能示例
這篇文章主要介紹了AJAX+Servlet實(shí)現(xiàn)的數(shù)據(jù)處理顯示功能,結(jié)合實(shí)例形式分析了前臺(tái)ajax與后臺(tái)Servlet生成隨機(jī)數(shù)顯示的相關(guān)交互操作技巧,需要的朋友可以參考下2018-06-06

