java 下拉框使用json_java 移动开发获取多级下拉框json数据的类和mobile-select-area插件...

我这里以行政区划做例子

//这个类是把数据库中的行政区划转化为json格式的data

@SuppressWarnings("rawtypes")

public class XzqhLoadManager extends BaseManager {

/**查询市级**/

private static final String GET_CITY_SQL = "select xzqh_id,node_id,xjgmc from mz_xzjg where node_level = 2 and node_pid = '03' order by node_id ";

/**查询县级**/

private static final String GET_DISTRICT_SQL = "select xzqh_id,node_id,xjgmc from mz_xzjg where node_level = 3 and node_pid = ? order by node_id ";

/**查询镇街**/

private final static String QUERY_TOWNSTREET_SQL = "select xzqh_id,node_id,xjgmc from mz_xzjg where node_level = 4 and node_pid = ? order by node_id ";

/**查询村社**/

private final static String QUERY_VILLAGECOMMUNITY_SQL = "select xzqh_id,node_id,xjgmc from mz_xzjg where node_level = 5 and node_pid = ? order by node_id ";

public static void getXzqhJsonData(ServiceData sdata) {

String responeMessage = "{success:'true', message:'ok'}";

log.info(responeMessage);

try {

RowList row_level2 = AspDaoUtil.getJdbcTemplate().queryRowList(GET_CITY_SQL);

JSONArray jsonArr2 = new JSONArray();

JSONArray jsonArr3 = new JSONArray();

JSONArray jsonArr4 = new JSONArray();

JSONArray jsonArr5 = new JSONArray();

JSONObject json2 = new JSONObject();//市级

JSONObject json3 = new JSONObject();//区县

JSONObject json4 = new JSONObject();//镇街

JSONObject json5 = new JSONObject();//村社

FieldList field_level2 = null;

FieldList field_level3 = null;

FieldList field_level4 = null;

FieldList field_level5 = null;

RowList row_level3 = null;

RowList row_level4 = null;

RowList row_level5 = null;

for (int i = 0; i < row_level2.size(); i++) {

field_level2 = row_level2.get(i);

row_level3 = AspDaoUtil.getJdbcTemplate().queryRowList(GET_DISTRICT_SQL,new Object[] {

field_level2.get("node_id")});

for(int j = 0; j

field_level3 = row_level3.get(j);

json3.put("id", field_level3.get("xzqh_id"));

json3.put("name", field_level3.get("xjgmc"));

row_level4 = AspDaoUtil.getJdbcTemplate().queryRowList(QUERY_TOWNSTREET_SQL, new Object[] {

field_level3.get("node_id")});

for(int k=0; k

field_level4 = row_level4.get(k);

json4.put("id", field_level4.get("xzqh_id"));

json4.put("name", field_level4.get("xjgmc"));

row_level5 = AspDaoUtil.getJdbcTemplate().queryRowList(QUERY_VILLAGECOMMUNITY_SQL, new Object[] {

field_level4.get("node_id")});

//Thread.sleep(5000); //间隔执行时间10秒

for(int m=0; m

field_level5 = row_level5.get(m);

json5.put("id", field_level5.get("xzqh_id"));

json5.put("name", field_level5.get("xjgmc"));

jsonArr5.add(json5);

json5.remove(json5);

}

json4.put("child", jsonArr5);

jsonArr5.removeAll(jsonArr5);

jsonArr4.add(json4);

json4.remove(json4);

}

json3.put("child", jsonArr4);

jsonArr4.removeAll(jsonArr4);

jsonArr3.add(json3);

json3.remove(json3);

}

json2.put("id", field_level2.get("xzqh_id"));

json2.put("name", field_level2.get("xjgmc"));

json2.put("child", jsonArr3);

jsonArr3.removeAll(jsonArr3);

jsonArr2.add(json2);

json2.remove(json2);

}

//log.info(jsonArr2);

String xzqhJsonStr = "{\"data\": " + jsonArr2.toString() + "}";

log.info(xzqhJsonStr);

String filepath = "D:/yl_yjt_app/";

log.info(filepath);

CreateFileUtil.createJsonFile(xzqhJsonStr, filepath, "xzqhJson");

responeMessage = "{success:'true', message:'ok', data:'"+xzqhJsonStr+"'}";

} catch (Exception e) {

responeMessage = "{success:'false', message:'错误:请联系客服!'}";

log.info(e.getMessage());

}

sdata.setResponseBody(responeMessage);

}

}

//我们把用类处理得到的data.jason文件放到html的当前文件夹下

48a7600b167b52edd877dd8dd5acbf0b.png

20fca828d0389fe3db2cbeab7e93c5b3.png

//现在html中写好放置的行政区划的选择按钮 这里的点击事件,放在$(function{})中,可以自动检测到是否点击

25a468f49da197a12a04b56f1c864208.png

9619c85e578157a2da4df171bdbe2004.png

f1df5a422af1fbff1a3d9e966ea3d9cf.png

110e7a3aa273beed198066dfb9c5ddd5.png

bc26379096edc254263af525e5ef742b.png///这个就是效果,移动开发mobile-select-area插件。

插件方法属性

default:0||1

0为空,true时默认选中第一项,默认1

trigger:

触发弹窗的DOM元素 ,可以是input或其他

value:

初始值,

level: int

级别数,默认是3级的

separator: ,

id值分隔符

eventName:tap|click

触发事件名称,默认click,使用zeptojs的可以用tap事件

data:

当data为json对象时可以直接解析,此时直接接收数组

当data为string发送ajax请求后返回json,格式如下:

mobile-select.js的特性

特性

原生js移动端选择控件,不依赖任何库

可传入普通数组或者json数组

可根据传入的参数长度,自动渲染出对应的列数,支持单项到多项选择

自动识别是否级联

选择成功后,提供自定义回调函数callback() 返回当前选择索引位置、以及选择的数据(数组/json)

每次手势滑动结束后,也提供一个回调函数transitionEnd() 返回当前选择索引位置、以及选择的数据(数组/json)

能够在已经实例化控件后,提供update函数,传其他参数再次渲染

提供重定位函数

要在Python中使用`ttkbootstrap`库创建一个下拉框,并从`user.json`文件中获取数据,您可以按照以下步骤进行操作: 1. 首先,确保您已经安装了`ttkbootstrap`和`json`库。您可以使用以下命令在命令提示符或终端中安装它们: ```shell pip install ttkbootstrap ``` 2. 创建一个新的Python文件,并导入所需的库: ```python from tkinter import Tk, StringVar from tkinter.ttk import Combobox import json ``` 3. 在`user.json`文件中包含下拉框的选项数据。例如,`user.json`文件内容如下: ```json { "users": ["Alice", "Bob", "Charlie", "Dave"] } ``` 4. 在Python代码中读取`user.json`文件,并获取下拉框的选项数据: ```python # 读取user.json文件 with open('user.json') as f: data = json.load(f) # 获取下拉框选项数据 users = data['users'] ``` 5. 创建一个Tkinter窗口,并设置下拉框的选项和初始值: ```python # 创建Tkinter窗口 window = Tk() # 创建StringVar对象,用于保存下拉框的选择值 selected_user = StringVar() # 创建下拉框,并设置选项和初始值 combobox = Combobox(window, textvariable=selected_user, values=users) combobox.current(0) # 设置初始值为第一个选项 # 显示下拉框 combobox.pack() # 运行窗口主循环 window.mainloop() ``` 完整的代码示例: ```python from tkinter import Tk, StringVar from tkinter.ttk import Combobox import json # 读取user.json文件 with open('user.json') as f: data = json.load(f) # 获取下拉框选项数据 users = data['users'] # 创建Tkinter窗口 window = Tk() # 创建StringVar对象,用于保存下拉框的选择值 selected_user = StringVar() # 创建下拉框,并设置选项和初始值 combobox = Combobox(window, textvariable=selected_user, values=users) combobox.current(0) # 设置初始值为第一个选项 # 显示下拉框 combobox.pack() # 运行窗口主循环 window.mainloop() ``` 运行以上代码,您将看到一个包含用户选项的下拉框窗口。您可以根据需要调整代码来适应您的实际情况。 注意:请确保`user.json`文件与您的Python代码位于同一目录中,或者您可以提供正确的文件路径来读取`user.json`文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值