DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> AJAX入門 >> AJAX基礎知識 >> Ajax商品分類三級聯動的簡單實現(案例)
Ajax商品分類三級聯動的簡單實現(案例)
編輯:AJAX基礎知識     

思路分析:

效果:當頁面加載時,利用ajax異步向後台請求數據,加載一級商品類別,當選擇一級商品時加載二級商品,選擇二級商品加載三級商品。

實現:

1、當拿到數據後加載pid為0的商品,並動態創建option將商品追加到一級菜單中,並設置value值

2、當選擇一級商品時加載pid=當前id的商品,並創建option將商品追加到二級菜單中,並設置value值

3、當選擇二級商品時加載pid=當前id的商品,並創建option將商品追加到三級菜單中,並設置value值

頁面效果:

$(function(){
      //請求路徑
      var url="03goods.php";
      //option默認內容
      var option="<option value='0'>未選擇</option>";
      //獲取jq對象
      var $sel1=$(".sel1");
      var $sel2=$(".sel2");
      var $sel3=$(".sel3");
      //自動生成一個<option>元素
      function createOption(value,text){
        var $option=$("<option></option>");
        $option.attr("value",value);
        $option.text(text);
        return $option;
      }
      //加載數據
      function ajaxSelect($select,id){
        //get請求
        $.get(url,{"pid":id},function(data){
          $select.html(option);
          for(var k in data ){
            $select.append(createOption(data[k].id,data[k].name));
          }
        },"json");
      }

      //自動加載第一個下拉菜單
      ajaxSelect($sel1,"0");

      //選擇第一個下拉菜單時加載第二個
      $sel1.change(function(){
        var id=$sel1.val();
        if(id=="0"){
          $sel2.html(option);
          $sel3.html(option);
        }else{
          ajaxSelect($sel2,id);
        }
      });

      //選擇第二個下拉菜單時加載第三個
      $sel2.change(function(){
        var $id=$sel2.val();
        if($id=="0"){
          $sel3.html(option);
        }else{
          ajaxSelect($sel3,$id);
        }
      });
    });

後台代碼:

<?php
  header('Content-Type:text/html; charset=utf-8');
  //數據
  $arr=array(
   //array(分類id,分類名,分類的父id)
   array('id'=>'1','name'=>'數碼產品','pid'=>'0'),
   array('id'=>'2','name'=>'家電','pid'=>'0'),
   array('id'=>'3','name'=>'書籍','pid'=>'0'),
   array('id'=>'4','name'=>'服裝','pid'=>'0'),
   array('id'=>'5','name'=>'手機','pid'=>'1'),
   array('id'=>'6','name'=>'筆記本','pid'=>'1'),
   array('id'=>'7','name'=>'平板電腦','pid'=>'1'),
   array('id'=>'8','name'=>'智能手機','pid'=>'5'),
   array('id'=>'9','name'=>'功能機','pid'=>'5'),
   array('id'=>'10','name'=>'電視機','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;
  }
  //獲取請求參數
  $pid=isset($_GET['pid'])?$_GET['pid']:'0';

  $result=getByPid($arr,$pid);
  //輸出json數據
  echo json_encode($result);
?>

以上這篇Ajax商品分類三級聯動的簡單實現(案例)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved