多级联动下拉菜单插件:jquery.cxselect.js

      话说这个插件,我也用了挺久了,但一直对其具体的作用不是很懂,只知道可以利用 ajax来请求数据,实现类似于多级联动的效果。后来百度了下,在此做个总结吧。

      下面是以一名php程序员的角度来分析的。。。可能和前端同学分析的角度不大一样,见谅。

一、jquery.cxselect.js

(1)定义:cxSelect 是基于 jQuery 的多级联动菜单插件,适用于省市、商品分类等联动菜单。 列表数据通过 AJAX 获取(需要在服务器环境运行),也可以使用变量自定义,数据内容使用 JSON 格式。

(2)我们这里主要用到data 参数
      在父元素上的 data- 属性
      data-url 列表数据文件路径(此处只能设置路径,自定义需要在参数中设置)
      data-nodata 子集无数据时 select 的状态。
      data-required 是否为必选。
      data-first-title 所有下拉框的第一个项目的标题
      data-first-value 所有下拉框的第一个项目的值
例如:

data-url="{{url('/goods/get_type')}}

二、使用方法:

1、引入jquery和jquery.cxselect.js文件,这个大家都懂

2、项目中的应用:

  <div class="control-group">
    <label class="control-label" for="focusedInput">绑定设备类</label>

<div class="controls">
     <fieldset id="goods_select">
         <select class="g_type" name="g_type" id="g_type" data-url="{{url('/goods/get_type')}}"></select>
          <select class="goods_info_id" name="goods_info_id" id="goods_info_id" data-url="{{url('/goods/get_id')}}" data-json-name="name" data-json-value="value"></select>
     </fieldset>
  </div>
 </div>

这个代码有点长。。
(1)这里用的是select选项框。
(2)name和id要保持一致,也是我们需要用到的参数。
(3)data-url:由于楼主用的是laravel,所有直接写的路由名称,相当于请求服务器,查询想要的结果,然后以Json的形式返回。这里也可以写成:data-url=”cityData.min.js”格式的。
(4)data-json-name对应的是name和value,和下面的js代码对应。

3、在页面结尾要有调用一下该方法:

<script>
    $("#goods_select").cxSelect({
        selects : ["g_type", "goods_info_id"],
        jsonName: 'name',
        jsonValue: 'value'
    });
</script>
</body>
</html>

(1)利用id选择器,声明要请求服务器的id名称,进行ajax的请求时需要的参数
(2)json的格式规范

4、date-url对应的服务器端的代码

 /*
     * 获取某一设备分类下的相关设备
     * @param  type
     * @param  goods_info_id
     * @param  title
     * */
    public function get_id(Request $request)
    {
        $g_type = $request->input('g_type');
        $goods = DB::table('goods_info')->where('type','=',$g_type)->get();
        foreach($goods as $v)
        {
            $ret[] = [
                "name" => $v->title,
                "value" => $v->id,
            ];
        }
return response(json_encode($ret, JSON_UNESCAPED_UNICODE));
    }

(1)获取传过来的关键参数
(2)进行数据库查询
(3)将查询结果进行json的格式化,返回回去

5、效果图

这里写图片描述
如图所示:这是还没选的时候
这里写图片描述
如图所示:这是选择之后的

总结:这款插件,我觉得很适合各位后端的朋友,有时候自己写联动挺麻烦的,这个插件简单方便,而且还灵活。你需要什么数据,自己请求获取就好,不会限于什么省,市,县等三级联动,那都是毛毛雨。咱们这个插件理论山是可以实现所有联动需求的。大赞。

      PS:我截的图比较丑,还是可以很美观的,这个得需要填其他参数,在这儿就不列出了,匿了。

谢谢,end

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: 好的,我可以为您提供相关的代码实现。 这是一个基于 jQuery 的三级联下拉菜单的例子: HTML 代码: ``` <select id="province"> <option value="">请选择省份</option> </select> <select id="city"> <option value="">请选择城市</option> </select> <select id="area"> <option value="">请选择地区</option> </select> ``` jQuery 代码: ``` $(document).ready(function(){ // 加载省份数据 $.ajax({ type: "GET", url: "省份数据接口地址", dataType: "json", success: function(data){ $.each(data,function(i,item){ $("#province").append("<option value='"+item.code+"'>"+item.name+"</option>"); }); } }); // 当省份选择发生变化时,加载城市数据 $("#province").change(function(){ var provinceCode = $(this).val(); if(provinceCode != ""){ $.ajax({ type: "GET", url: "城市数据接口地址", data: {"provinceCode":provinceCode}, dataType: "json", success: function(data){ $("#city").empty(); $("#area").empty(); $("#city").append("<option value=''>请选择城市</option>"); $.each(data,function(i,item){ $("#city").append("<option value='"+item.code+"'>"+item.name+"</option>"); }); } }); }else{ $("#city").empty(); $("#area").empty(); $("#city").append("<option value=''>请选择城市</option>"); $("#area").append("<option value=''>请选择地区</option>"); } }); // 当城市选择发生变化时,加载地区数据 $("#city").change(function(){ var cityCode = $(this).val(); if(cityCode != ""){ $.ajax({ type: "GET", url: "地区数据接口地址", data: {"cityCode":cityCode}, dataType: "json", success: function(data){ $("#area").empty(); $("#area").append("<option value=''>请选择地区</option>"); $.each(data,function(i,item){ $("#area").append("<option value='"+item.code+"'>"+item.name+"</option>"); }); } }); }else{ $("#area").empty(); $("#area").append("<option value=''>请选择地区</option>"); } }); }); ``` 请注意,以上代码中的数据接口地址需要替换为实际的接口地址。此外,还需要根据实际情况调整代码中的数据格式和名称。 ### 回答2: Ajax级联效果是指利用Ajax技术实现多个下拉菜单之间的数据联,实现根据前一个下拉菜单的选项态改变后续下拉菜单的选项内容。Ajax级联下拉菜单效果是指有三个相关联的下拉菜单,选择一个下拉菜单的选项后,另外两个下拉菜单的选项内容会相应改变。 实现这个效果的步骤如下: 1. 前端页面设置三个下拉菜单元素,并使用JavaScript监听第一个下拉菜单的选项改变事件,即当第一个下拉菜单的选项改变时触发事件。 2. 在JavaScript中定义一个Ajax请求函数,该函数通过发送一个Ajax请求到后端获取第二个下拉菜单的选项内容。 3. 后端接收到Ajax请求后,根据第一个下拉菜单选项的值进行相应的数据处理,并将处理结果返回给前端。 4. 前端通过Ajax请求的回调函数获取到后端返回的数据,然后将数据设置为第二个下拉菜单的选项内容。 5. 同样地,对第二个下拉菜单也需要设置一个监听选项改变事件的函数,并在该函数中通过发送Ajax请求获取第三个下拉菜单的选项内容。 6. 后端根据第二个下拉菜单选项的值进行数据处理,并返回给前端。 7. 前端通过回调函数获取到后端返回的数据,并将数据设置为第三个下拉菜单的选项内容。 通过以上步骤,就可以实现Ajax级联下拉菜单效果。在这个过程中,通过Ajax技术实现了前后端的数据交互,从而实现了多级联效果。 ### 回答3: Ajax级联效果指的是在网页中使用Ajax技术实现多个下拉菜单之间的联效果。常见的应用场景是省市区三级联选择。 具体操作如下: 1. 在HTML中,定义一个最外层的下拉菜单,用来选择省份。 2. 使用Ajax发送请求,获取省份列表数据,并将数据填充到省份的下拉菜单中。 3. 给省份下拉菜单添加change事件监听器,当省份变化时,触发事件回调函数。 4. 在事件回调函数中,获取选中的省份值,并发送Ajax请求获取对应的城市列表数据。 5. 将获取到的城市列表数据填充到城市的下拉菜单中。 6. 给城市下拉菜单添加change事件监听器,当城市变化时,触发事件回调函数。 7. 在事件回调函数中,获取选中的城市值,并发送Ajax请求获取对应的区县列表数据。 8. 将获取到的区县列表数据填充到区县的下拉菜单中。 9. 完成三级联菜单的效果。 通过以上步骤,实现了Ajax级联下拉菜单效果,用户可以根据选择的省市区,态获取到对应的下级菜单数据,从而实现多级联效果。此种效果在选择地址、商品分类等场景中应用广泛。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铁柱同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值