我在文本框输入一个值,让它响应blur事件,
然后再后台获取这个值的子结果。
就比如我输入一个销售订单号salesOrderCode,然后把销售下面的所有批次号setCodeId带出来,然后返回到前台设置下拉列表。
就是怎么把JSON 里面所有的setCodeId 取出来
{'salesOrderId':'19','setCodeId':'1','setCodeId':'2','setCodeId':'3','salesOrderCode':'BYD-V--10000140'}
然后再后台获取这个值的子结果。
就比如我输入一个销售订单号salesOrderCode,然后把销售下面的所有批次号setCodeId带出来,然后返回到前台设置下拉列表。
就是怎么把JSON 里面所有的setCodeId 取出来
{'salesOrderId':'19','setCodeId':'1','setCodeId':'2','setCodeId':'3','salesOrderCode':'BYD-V--10000140'}
解决方案 »
- 关于jcombobox的问题,无法实现,求大师,
- 谁有java application 页面开放教程?
- 如何把一批xml文件打包成服务?
- db2百万数据处理问题
- 关于:<%@ taglib prefix="myfun" uri="http://hellking.com/function"%>
- com.bruceeckl.swing.*
- 大家帮忙看看这个网站的Struts 技术是怎么实现的呢?
- 关于ibatis的问题,请高手指点下!
- 我不知道该怎么做了???
- Websphere3.5支持EJB1.1吗?
- java正则问题
- Unknown column '????????????' in 'field list'
{'salesOrderId':'19','setCodeId':['1','2','3'],'salesOrderCode':'BYD-V--10000140'}
'setCodeId':['1','2','3'],' 中括号里面的最后一个逗号怎么判断啊 ? 我用for循环把值取出来,最后一个逗号有什么办法? 我的JS 不熟悉
var serverId = document.getElementById("serverId").value;
var store = new Ext.data.JsonStore({
url:'filerTask.htm?serverId=' + serverId ,
fields:['id','name'],
root:'data',
autoLoad:true
});//从后台获取任务
document.getElementById("taskIds").innerHTML = "";
taskCombox = new Ext.form.ComboBox({//将任务显示出来
store: store,
valueField:'id',
displayField:'name',
emptyText:'请选择任务...',
typeAhead: true,
mode: 'remote',
triggerAction: 'all',
width:90,
editable:false,
selectOnFocus:true,
blankText : '任务不能为空!',
renderTo:'taskIds'
});
}
var salesOrderCode = $("#salesOrderCode").val();
if (salesOrderCode.length != 0) {
$.ajax({
url : 'exitTrafficOrder/transportOrder!getTransOrderInfo.action',
type : 'post',
data : {
salesOrderCode : salesOrderCode
},
cache:false,
success : function(data) {
alert(data)
if (data) {
var p = eval("(" + data + ")");
$("#salesOrderId").val(p.salesOrderId);
$("#salesOrderCode").val(p.salesOrderCode);
$("#setCodeId").val(p.setCodeId);
alert($("#setCodeId")); } else {
alert("客户代码有误,请重新输入");
$("#salesOrderId").val("");
$("#salesOrderCode").val("");
$("#setCodes").val("");
}
}
});
}
}
然后for循环一下 创建select 的 option.
没用过jquery的方法,
只要记住 json的封装方式"{},{}"大括号里是对象
{'salesOrderId':'19','setCodeId':'1'} 里面封装的是属性("key":"value")
属性以逗号分隔, 这样在回调函数中就好取值了.
Map<String,String> map = JSON; //JSON就是JSON格式的数据
有几个{}就有几个Map,比如顶楼给出个格式是那样的,取值如下:
value = map.get("salesOrderId")
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
/*
* jquery使用方法 传入 一级ID 二级ID 数据 .D
* <select id="select_1"><option>请选择一级菜单</option></select>
* <select id="select_2" disabled><option>请选择二级菜单</option></select>
* $('#select_1').selectLink('#select_1','#select_2',cities)
*/
//js
jQuery.fn.extend({
selectLink:function(ids,id,JSON){
var a = [];var htmls = '';
for(var m in JSON){a.push(m)};
if(a != ''){
for(var i in a){htmls = htmls + '<option>' + a[i] + '</option>'}
$(ids).html(htmls);
};
$(ids).change(function(){
var b = [];html = '';
$(id).html(html);
c = $(ids).val();
$(id).attr('disabled','true');
for(var n in JSON){
if(c == n){
b = JSON[n];
if(b != ''){
for(var j in b){html = html + '<option>' + b[j] + '</option>'}
$(id).html(html);
$(id).removeAttr('disabled')
}
}
}
})
}
});
//js页面
$(document).ready(function(){
$('#select_1').selectLink('#select_1','#select_2',cities)
});
//数据
var cities = {
"北京":["昌平区","朝阳区","崇文区","大兴区","东城区","丰台区","海淀区","石景山区","通州区","西城区","宣武区","密云县","延庆县"],
"上海":["长宁区","虹口区","黄浦区","静安区","卢湾区","浦东新区","普陀区","徐汇区","杨浦区","闸北区","闵行区","奉贤区","青浦区","松江区","南汇区","嘉定区","宝山区","金山区","崇明县"],
"天津":["北辰区","大港区","东丽区","汉沽区","和平区","河北区","河东区","河西区","红桥区","津南区","南开区","塘沽区","西青区","蓟县","静海县","宁河县"],
"重庆":["巴南区","北培区","大渡口区","涪陵区","江北区","九龙坡区","南岸区","黔江区","沙坪坝区","双桥区","万盛区","万州区","渝北区","渝中区","城口县","大足县","垫江县","丰都县","奉节县","合川市","江津市","开县","梁平县","南川市","彭水苗族土家族自治县","荣昌县","石柱土家族自治县","铜梁县","巫山县","巫溪县","武隆县","秀山土家族苗族自治县","永川市","酉阳土家族苗族自治县","云阳县","忠县","潼南县","璧山县","綦江县"],
"香港":["香港"],
"澳门":[],
"河北":["石家庄","唐山","秦皇岛","邯郸","邢台","保定","张家口","承德","沧州","廊坊","衡水"],
"山西":["太原","大同","阳泉","长治","晋城","朔州","晋中","运城","忻州","临汾","吕梁"],
"内蒙古":["呼和浩特","包头","乌海","赤峰","通辽","鄂尔多斯","呼伦贝尔","巴彦淖尔","乌兰察布","兴安","锡林郭勒","阿拉善"],
"辽宁":["沈阳","大连","鞍山","抚顺","本溪","丹东","锦州","营口","阜新","辽阳","盘锦","铁岭","朝阳","葫芦岛"],
"吉林":["长春","吉林","四平","辽源","通化","白山","松原","白城","延边"],
"黑龙江":["哈尔滨","齐齐哈尔","鸡西","鹤岗","双鸭山","大庆","伊春","佳木斯","七台河","牡丹江","黑河","绥化","大兴安岭"],
"江苏":["南京","苏州","扬州","无锡","徐州","常州","南通","连云港","淮安","盐城","镇江","泰州","宿迁"],
"浙江":["杭州","宁波","温州","嘉兴","湖州","绍兴","金华","衢州","舟山","台州","丽水"],
"安徽":["合肥","芜湖","蚌埠","淮南","马鞍山","淮北","铜陵","安庆","黄山","滁州","阜阳","宿州","巢湖","六安","亳州","池州","宣城"],
"福建":["福州","宁德","南平","厦门","莆田","三明","泉州","漳州"],
"江西":["南昌","上饶","萍乡","九江","景德镇","新余","鹰潭","赣州","吉安","宜春","抚州"],
"山东":["济南","青岛","淄博","枣庄","东营","烟台","潍坊","威海","济宁","泰安","日照","莱芜","临沂","德州","聊城","滨州","菏泽"],
"河南":["郑州","开封","洛阳","平顶山","焦作","鹤壁","新乡","安阳","濮阳","漯河","许昌","三门峡","南阳","商丘","信阳","周口","驻马店"],
"湖北":["武汉","十堰","襄樊","鄂州","黄石","荆州","宜昌","荆门","孝感","黄冈","咸宁","随州","恩施"],
"湖南":["长沙","株洲","湘潭","岳阳","邵阳","常德","衡阳","张家界","益阳","郴州","永州","怀化","娄底","湘西"],
"广东":["广州","清远","潮州","东莞","珠海","深圳","汕头","韶关","佛山","江门","湛江","茂名","肇庆","惠州","梅州","汕尾","阳江","河源","中山","揭阳","云浮"],
"广西":["南宁","柳州","桂林","梧州","北海","防城港","钦州","贵港","玉林","百色","贺州","河池","来宾","崇左"],
"海南":["海口","三亚"],
"四川":["成都","自贡","攀枝花","泸州","德阳","绵阳","广元","遂宁","内江","乐山","南充","宜宾","广安","达州","眉山","雅安","巴中","资阳","阿坝","甘孜","凉山"],
"贵州":["贵阳","六盘水","遵义","安顺","铜仁","毕节","黔西南","黔东南","黔南"],
"云南":["昆明","曲靖","玉溪","保山","昭通","丽江","普洱","临沧","文山","红河","西双版纳","楚雄","大理","德宏","怒江","迪庆"],
"西藏":["拉萨","昌都","山南","日喀则","那曲","阿里","林芝"],
"陕西":["西安","铜川","宝鸡","咸阳","渭南","延安","汉中","榆林","安康","商洛"],
"甘肃":["兰州","白银","定西","敦煌","嘉峪关","金昌","天水","武威","张掖","平凉","酒泉","庆阳","临夏","陇南","甘南"],
"青海":["西宁","海东","海北","黄南","海南","果洛","玉树","海西"],
"宁夏":["银川","石嘴山","吴忠","固原","中卫"],
"新疆":["乌鲁木齐","克拉玛依","吐鲁番","哈密","和田","阿克苏","喀什","克孜勒苏柯尔克孜","巴音郭楞蒙古","昌吉","博尔塔拉蒙古","伊犁哈萨克","阿勒泰"],
"台湾":["台北","高雄","基隆","台中","台南","新竹","嘉义"]
};
</script>
</head><body>
<!--我就是传说中的html-->
<select id="select_1"><option>请选择一级菜单</option></select>
<select id="select_2" disabled><option>请选择二级菜单</option></select></body>
</html>
针对上面的数据,在后台必须先处理
JSONArray jSONArray = jSONbject.optJSONArray("setCodeId")
这个才是你要的数据{1,2,3};
之后你把上面的数据重新组成以下数据
{'salesOrderId':'19','setCodeId':'1,2,3','salesOrderCode':'BYD-V--10000140'}
在前台的取的方法是
var json = null;
var XX = json.setCodeId。
XX的数据就是 1,2,3了,之后怎么做你就清楚了吧,
你上面给出的数据在前台不好取,好像没有 optJSONArray方法,不能循环取出,在后台处理一下吧,
如果有不明白的问题可以加我好友,具体分析。