当前位置 博文首页 > ajax实现select三级联动效果

    ajax实现select三级联动效果

    作者:smartming16 时间:2021-09-21 19:11

    本文利用ajax技术从数据库中获取数据,动态实现select三级联动,效果图如下:

    前端js代码如下:

    <script type="text/javascript" src="jquery/jquery-1.9.1.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function(){
    $.ajax({
    type:"get",
    dataType:"text",
    url:"GetItemAction?itemlevel=1",
     success:function(data){
     // 由JSON字符串转换为JSON对象
      var objJSON=eval("("+data+")");
     var len=objJSON.itemInfo.length; 
    
     var objSelect=document.getElementById("firstlevel");
     for(var i=0;i<len;i++){
     var op=new Option(objJSON.itemInfo[i].itemname,objJSON.itemInfo[i].itemcode);
     objSelect.add(op);
     } 
    
     },
    error: function (XMLHttpRequest, textStatus, errorThrown) { 
       alert(errorThrown); 
      }
    });
    });
    
    //显示二级分类
    function firstlevel_Click(){
    var objfirst=document.getElementById("firstlevel");
    var index=objfirst.selectedIndex; //选中索引 
    var itemcode=objfirst.options[index].value; //选中值
    if(itemcode==0){
    alert("请选择事件类别");
    return;
    }
    // 删除二级分类保留第一个
    var objsecond=document.getElementById("secondlevel");
    for(var i=objsecond.options.length-1;i>0;i--){
    objsecond.options.remove(i);
    }
    
    // 删除三级分类保留第一个
    var objthird=document.getElementById("thirdlevel");
    for(var i=objthird.options.length-1;i>0;i--){
    objthird.options.remove(i);
    }
    
    $.ajax({
    type:"get",
    dataType:"text",
    url:"GetItemAction?itemlevel=2&itemcode="+itemcode,
     success:function(data){
     // 由JSON字符串转换为JSON对象
      var objJSON=eval("("+data+")");
     var len=objJSON.itemInfo.length;
     var objSelect=document.getElementById("secondlevel");
     for(var i=0;i<len;i++){
     var op=new Option(objJSON.itemInfo[i].itemname,objJSON.itemInfo[i].itemcode);
     objSelect.add(op);
     } 
    
     },
    error: function (XMLHttpRequest, textStatus, errorThrown) { 
       alert(errorThrown); 
      }
    });
    }
    
    //显示三级分类
    function secondlevel_Click(){
    var objsecond=document.getElementById("secondlevel");
    var index=objsecond.selectedIndex; //选中索引 
    var itemcode=objsecond.options[index].value; //选中值
    if(itemcode==0){
    alert("请选择事件类别");
    return;
    }
    
    // 删除三级分类保留第一个
    var objthird=document.getElementById("thirdlevel");
    for(var i=objthird.options.length-1;i>0;i--){
    objthird.options.remove(i);
    }
    
    $.ajax({
    type:"get",
    dataType:"text",
    url:"GetItemAction?itemlevel=3&itemcode="+itemcode,
     success:function(data){
     // 由JSON字符串转换为JSON对象
      var objJSON=eval("("+data+")");
     var len=objJSON.itemInfo.length;
     var objSelect=document.getElementById("thirdlevel");
     for(var i=0;i<len;i++){
     var op=new Option(objJSON.itemInfo[i].itemname,objJSON.itemInfo[i].itemcode);
     objSelect.add(op);
     } 
    
     },
    error: function (XMLHttpRequest, textStatus, errorThrown) { 
       alert(errorThrown); 
      }
    });
    }
    

    部分html代码

    <table class="table-exposure">
     <tr>
     <td height="40">
     <select  onchange="firstlevel_Click()" style="width:99%;font-size:1em;">
     <option value="0">请选择事件大类</option>
     </select>     
     </td>
     </tr>
     <tr>
     <td height="40">
     <select  onchange="secondlevel_Click()" style="width:99%;font-size:1em;">
     <option value="0">请选择事件小类</option>
     </select>
     </td>
     </tr>
     <tr>
     <td height="40">
     <select  style="width:99%;font-size:1em;">
     <option value="0">请选择事件类别</option>
     </select>
     </td>
     </tr>
     </table>
    jsjbwy
    下一篇:没有了