首页 >后端开发 >php教程 >Ajax商品分类三级联动简单实现方法

Ajax商品分类三级联动简单实现方法

小云云
小云云原创
2018-01-12 16:55:481979浏览

本文主要为大家带来一篇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=&#39;0&#39;>未选择</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(&#39;Content-Type:text/html; charset=utf-8&#39;);
  //数据
  $arr=array(
   //array(分类id,分类名,分类的父id)
   array(&#39;id&#39;=>&#39;1&#39;,&#39;name&#39;=>&#39;数码产品&#39;,&#39;pid&#39;=>&#39;0&#39;),
   array(&#39;id&#39;=>&#39;2&#39;,&#39;name&#39;=>&#39;家电&#39;,&#39;pid&#39;=>&#39;0&#39;),
   array(&#39;id&#39;=>&#39;3&#39;,&#39;name&#39;=>&#39;书籍&#39;,&#39;pid&#39;=>&#39;0&#39;),
   array(&#39;id&#39;=>&#39;4&#39;,&#39;name&#39;=>&#39;服装&#39;,&#39;pid&#39;=>&#39;0&#39;),
   array(&#39;id&#39;=>&#39;5&#39;,&#39;name&#39;=>&#39;手机&#39;,&#39;pid&#39;=>&#39;1&#39;),
   array(&#39;id&#39;=>&#39;6&#39;,&#39;name&#39;=>&#39;笔记本&#39;,&#39;pid&#39;=>&#39;1&#39;),
   array(&#39;id&#39;=>&#39;7&#39;,&#39;name&#39;=>&#39;平板电脑&#39;,&#39;pid&#39;=>&#39;1&#39;),
   array(&#39;id&#39;=>&#39;8&#39;,&#39;name&#39;=>&#39;智能手机&#39;,&#39;pid&#39;=>&#39;5&#39;),
   array(&#39;id&#39;=>&#39;9&#39;,&#39;name&#39;=>&#39;功能机&#39;,&#39;pid&#39;=>&#39;5&#39;),
   array(&#39;id&#39;=>&#39;10&#39;,&#39;name&#39;=>&#39;电视机&#39;,&#39;pid&#39;=>&#39;2&#39;),
   array(&#39;id&#39;=>&#39;11&#39;,&#39;name&#39;=>&#39;电冰箱&#39;,&#39;pid&#39;=>&#39;2&#39;),
   array(&#39;id&#39;=>&#39;12&#39;,&#39;name&#39;=>&#39;智能电视&#39;,&#39;pid&#39;=>&#39;10&#39;),
   array(&#39;id&#39;=>&#39;13&#39;,&#39;name&#39;=>&#39;编程书籍&#39;,&#39;pid&#39;=>&#39;3&#39;),
   array(&#39;id&#39;=>&#39;14&#39;,&#39;name&#39;=>&#39;JavaScript&#39;,&#39;pid&#39;=>&#39;13&#39;),
  );
  //获取指定分类的商品
  function getByPid($arr,$pid){
    $result=array();
    foreach($arr as $v){
      if($v[&#39;pid&#39;]==$pid){
       $result[]=$v;
      }
    }
    return $result;
  }
  //获取请求参数
  $pid=isset($_GET[&#39;pid&#39;])?$_GET[&#39;pid&#39;]:&#39;0&#39;;

  $result=getByPid($arr,$pid);
  //输出json数据
  echo json_encode($result);
?>

相关推荐:

jquery和ajax实现省市区三级联动封装和不封装两种方式

Jquery、Ajax、xml实现三级联动菜单效果

实现ajax三级联动效果简单方法

以上是Ajax商品分类三级联动简单实现方法的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn