ajax真正智能无限级下拉框生成(地域、各种分类)

浏览:3061 发布日期:2016/07/19 分类:功能实现 关键字: ajax智能无限级下拉框生成
真正智能无限级下拉框生成(地域、各种分类)秒杀所有联动下拉框,调用简单方便。
真正智能无限级下拉框生成(地域、各种分类),调用简单方便,随心所欲生成你想要的结果。
使用ajax无刷技术、mysql,目前我是没有见过有人写出这样的代码,中国主流的cms系统都没有此功能。欢迎技术指导。

如果想无限级的话把两个“ && i < 5”删除掉就行了,发布的时候忘记了删除了

前端代码:<html>
    <head></head>
    <script src="__PUBLIC__/jquery.min.js"></script>
    <script src="__PUBLIC__/select.js"></script>
    <body>
    <form>
        <div id="heizai">地区:</div>
        <div id="jx">药品剂型:</div>
        <div id="ly">来源:</div>
        <div id="qy">企业业务:</div>
    </form>
    </body>

    <script>
        $(function(){
            var data = [10006, 10135];
            initial(10001, "heizai", data);

            data = [3, 28];
            initial(1, "jx", data);

            initial(64, "ly", "");

            initial(51, "qy", "");
        });
    </script>

</html> 
js代码:// 初始化
var data = new Array();    // 数据
var html = "";    // html代码
var i    = 0;    // 循环变量

// $(function(){
//     initial();
// });


// AJAX获取分类
function getList(pid, name){
    $.ajax({
        url:'http://localhost/med/',
        async:false,
        type:'post',
        data:{'pid':pid},
        success:function(data){
            if (data != '') {
                html = "<select name='" + name + "[]' onchange='change($(this).index(), $(this).val(), $(this).attr(\"name\"))'>"
                $.each(data, function(index, list){
                    html += "<option value='" + list.id + "'>" + list.title + "</option>";
                })
                html += "</select>";
            } else {
                html = "";
            }
        }
    });
    return html;
};

// 循环输出分类
function initial(pid, name, data){
    html = getList(pid, name);
    $("#"+name).append(html);

    while(html != "" && i < 5){
        if (data[i] != undefined && data[i] != '') {
            pid = data[i];
            $("select[name='"+name+"[]']:eq("+i+")").val(pid);
        } else {
            pid = $("select[name='"+name+"[]']:eq("+i+")").val();
        };
        html = getList(pid, name);
        $("#"+name).append(html);
        i++;
    };
    i = 0;
};

// 选择事件
function change(index, pid, name){
    $("select[name='" + name + "']:gt(" + index + ")").remove();
    var new_name = name.replace("[]", "");
    html = getList(pid, new_name);
    i = index;
    while(html != '' && i < 5){
        $("#"+new_name).append(html);
        i++;
        pid = $("select[name='" + name + "']:eq(" + i + ")").val();
        html = getList(pid, new_name);
    }
};
php代码:    public function index(){
        if (IS_POST) {
            $type = M('Type');
            $map['parentid'] = I('pid');
            $list = $type->where($map)->field('id,title')->select();
            $this->ajaxReturn($list);
        } else {
            $this->display();
        }
    }

附件 源码分享20160719173824.zip ( 65.16 KB 下载:241 次 )

评论( 相关
后面还有条评论,点击查看>>