博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
类别联动下拉菜单
阅读量:5238 次
发布时间:2019-06-14

本文共 2551 字,大约阅读时间需要 8 分钟。

适用范围:省市无限级联动,商品类别无限极联动

需要使用到的jQuery插件为cxselect,ok说不清楚,还是直接上代码比较直观

HTML代码如下:

js代码如下:

1  2  3 function checkForm(){ 4     var categorys = []; 5     $("#cate").each(function () { 6         var val = $(this).val(); 7         if (val != "") { 8             categorys.push(val); 9         }10     });11     if (categorys.length == 0) {12         alert("请选择类别。");13         return false;14     }15     return true;16 }17 18 $.cxSelect.defaults.url = '/category/category.json';19 $('#element_id').cxSelect({20     selects: ['select1', 'select2', 'select3', 'select4', 'select5'],21     nodata: 'none',22     required:false,23     firstTitle:'----全部----',24     firstValue:''25 });

category.json文件需要在类别管理中生成所有类别的json文件,php控制器代码如下:

1     /*生成类别json数据*/2     public function createJson(){3         $categoryModel = new CateModel();4         if($categoryModel->wirteJson()){5             echo "";6         }else{7             echo "";8         }9     }

php模型代码如下:

1 /*生成类别JSON数据*/ 2 public function wirteJson(){ 3     $dataInfo = \think\Db::query("select id as v,name as n,pid from think_pro_category"); 4     $data = $this->getCategoryJson($dataInfo); 5     return $data; 6 } 7  8 /** 9  * 功能:无限级类别json数据生成10  * 参数:$data 类别查询结果集11  * 返回值:$json 递归查询排序后的json数据12  */13 public function getCategoryJson($dataInfo) {14     /*生成json数据*/15     foreach($dataInfo as $category) {16         $tree[$category['v']] = $category;17         $tree[$category['v']]['s'] = array();18     }19     $content = json_encode(generateTree($tree));20     $content = str_replace(',"s":[]', "", $content);21     // for( $i = 0; $i < count($dataInfo); $i++ ) {22     //     $content = str_replace('"'.$dataInfo[$i]['v'].'":', "", $content);23     // }24     //$content = '['.substr($content,1,strlen($content)-2).']';25     //return $content;26     /*写入文件*/27     //文件存放路径28     $filePath = $_SERVER['DOCUMENT_ROOT'].DS.'/category/category.json';29     $returnval = file_put_contents($filePath,$content);30     // $fopen = fopen($filePath,'w+');31     // fwrite($fopen,$content);32     // fclose($fopen);33     return $returnval;34 }

公共函数:

1 /** 2  *处理分类数组 3 **/ 4 function generateTree($items) { 5     $tree = array(); 6     foreach($items as $item){ 7         if(isset($items[$item['pid']])){ 8             $items[$item['pid']]['s'][] = &$items[$item['v']]; 9         }else{10             $tree[] = &$items[$item['v']];11         }12     }13     return $tree;14 }

 

转载于:https://www.cnblogs.com/walblog/p/8036389.html

你可能感兴趣的文章
js如何获取response header信息
查看>>
python_文件的打开和关闭
查看>>
ADO.NET介绍
查看>>
iOS: 数据持久化方案
查看>>
【C#】【Thread】Monitor和Lock
查看>>
UVALive - 3635 - Pie(二分)
查看>>
集合类List,set,Map 的遍历方法,用法和区别
查看>>
Scala入门系列(十):函数式编程之集合操作
查看>>
pulseaudio的交叉编译
查看>>
Cracking The Coding Interview 1.1
查看>>
vb.net 浏览文件夹读取指定文件夹下的csv文件 并验证,显示错误信息
查看>>
NetworkInterface的使用
查看>>
元素自动居中显示
查看>>
JDBC 时间处理
查看>>
hadopp 环境搭建
查看>>
【2018】听懂你能看懂的句子
查看>>
mybatis源代码分析:深入了解mybatis延迟加载机制
查看>>
Flask三剑客
查看>>
Hibernate-缓存
查看>>
【BZOJ4516】生成魔咒(后缀自动机)
查看>>