nodejs 使用fs实现多级联动
1.js代码
var express = require('express'); var router = express.Router(); var fs = require("fs"); /* GET users listing. */ router.get('/', function(req, res, next) { res.render('three', { title: 'Express' }); }); router.post('/tmpList', function(req, res, next) { fs.readdir("./public/tmps", function (err, files) { var jsonArray = new Array(); //[{id:0,name:'陕西省'},{id:1,name:'福建省'},{id:2,name:'陕西省'}] jsonArray.push({id: "", name: '请选择省或地区'}); for (var index in files) { var jsonObj = {}; jsonObj.id = index; jsonObj.name = files[index]; jsonArray.push(jsonObj); } console.dir(jsonArray); res.send(jsonArray); }); }); /** * 查询省目录下的市 */ router.post("/cityList", function (req, res) { var proName = req.body.proName; fs.readdir("./public/tmps/" + proName, function (err, files) { var jsonArray = new Array(); //[{id:0,name:'陕西省'},{id:1,name:'福建省'},{id:2,name:'陕西省'}] jsonArray.push({id: "", name: '请选择市'}); for (var index in files) { var jsonObj = {}; jsonObj.id = index; jsonObj.name = files[index]; jsonArray.push(jsonObj); } res.send(jsonArray); }); }); /** * 查询市目录下的大类 */ router.post("/bigTypeList", function (req, res) { var proName = req.body.proName; var cityName = req.body.cityName; fs.readdir("./public/tmps/" + proName + "/" + cityName + "/", function (err, files) { var jsonArray = new Array(); jsonArray.push({id: "", name: '请选择大类'}); for (var index in files) { var jsonObj = {}; jsonObj.id = index; jsonObj.name = files[index]; jsonArray.push(jsonObj); } res.send(jsonArray); }); }); /** * 查询大类目录下的品种 */ router.post("/varietyList", function (req, res) { var proName = req.body.proName; var cityName = req.body.cityName; var bigTypeName = req.body.bigTypeName; fs.readdir("./public/tmps/" + proName + "/" + cityName + "/" + bigTypeName + "/", function (err, files) { var jsonArray = new Array(); jsonArray.push({id: "", name: '请选择品种'}); for (var index in files) { var jsonObj = {}; jsonObj.id = index; jsonObj.name = files[index]; jsonArray.push(jsonObj); } res.send(jsonArray); }); }); module.exports = router;
2.html代码
所需js及css在http://download.csdn.net/detail/qq_30709973/9449265
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <link rel="stylesheet" type="text/css" href="/plugin/jquery-easyui-1.4.3/themes/default/easyui.css"> <link rel="stylesheet" type="text/css" href="/stylesheets/jquery.autocomplete.css"> <link rel="stylesheet" type="text/css" href="/plugin/jquery-easyui-1.4.3/themes/icon.css"> <script type="text/javascript" src="/plugin/jquery-easyui-1.4.3/jquery.min.js"></script> <script type="text/javascript" src="/plugin/jquery-easyui-1.4.3/jquery.easyui.min.js"></script> <script type="text/javascript" src="/plugin/jquery-easyui-1.4.3/locale/easyui-lang-zh_CN.js"></script> <script type="text/javascript" src="/plugin/jquery.autocomplete.min.js"></script> <title></title> <script type="text/javascript"> jQuery(function(){ jQuery("#city").combobox({ data: [ { id: "", name: "请选择市" } ] }); jQuery("#bigType").combobox({ data: [ { id: "", name: "请选择大类" } ] }); jQuery("#variety").combobox({ data: [ { id: "", name: "请选择品种" } ] }); jQuery("#province").combobox({ onSelect: function (record) { jQuery("#city").combobox({ url: '/users/cityList', queryParams: {proName: jQuery("#province").combobox("getText")} }) } }); jQuery("#city").combobox({ onSelect: function (record) { jQuery("#bigType").combobox({ url: '/users/bigTypeList', queryParams: { cityName: jQuery("#city").combobox("getText"), proName: jQuery("#province").combobox("getText") } }) } }); jQuery("#bigType").combobox({ onSelect: function (record) { jQuery("#variety").combobox({ url: '/users/varietyList', queryParams: { cityName: jQuery("#city").combobox("getText"), proName: jQuery("#province").combobox("getText"), bigTypeName: jQuery("#bigType").combobox("getText") } }) } }); }); </script> </head> <body> <form method="post" id="addMarketForm"> <div style="float: left;margin-top: 10px;"> 商品区域:<input style="width: 150px;" class="easyui-combobox" id="province" name="province" data-options="valueField:'id',textField:'name',url:'/users/tmpList',panelHeight:'300px;',editable:false"> <input style="width: 150px;" class="easyui-combobox" id="city" name="city" data-options="valueField:'id',textField:'name',panelHeight:'auto',editable:false"> </div> <div style="float: left;margin-top: 10px;margin-left: 5px;"> 商品大类:<input class="easyui-combobox" id="bigType" data-options="textField:'name',valueField:'id',url:'',panelHeight:'auto',editable:false" style="width: 150px;"/> </div> <div style="margin-top: 10px;float: left;margin-left: 5px;"> 品种:<input class="easyui-combobox" id="variety" data-options="textField:'name',valueField:'id',url:'',panelHeight:'auto',editable:false" style="width: 150px;"/> </div> </form> </body> </html>

浙公网安备 33010602011771号