So easy!前几天,就是打杂呀~~没什么事情干。坐我旁边的兄弟,看我没事,也想让我多学一些东西,所以说让我试着做一下项目交付件。现在想起来真是感谢啊,学到很多东西,因为我真是不太懂这些东西的。开始了解业务也很困难。切入正题吧!过程中我在后台放入两个model到request中然后到页面迭代出来。交付件中有网络、任务、交付件编号、交付件名称、交付件说明、交付件负责人、权重等信息。还可以添加行复制行,删除行。每一行都是数据库中的一条记录,先读出来,然后网络任务负责人,是根据项目号查询的出来的,具体描述是项目表查询WBS找到一个list然后再根据这个wbs号查找网络表的list(自此查到网络的list)然后根据查到得网络List中的工艺路线号再去查找任务表中的工艺路线号相等的记录。其中任务表主键是工艺路线号和通用计数器两个主键组成的复合主键(自此任务也查询出来了)。最后再根据网络号,任务的工艺路线号,通用计数器,查找项目人员分配表中的可分配人员,其中人员分配表中的主键是由网络号,工艺路线号,通用计数器,项目号组成。
可能说起来关系比较乱吧。项目交付件分配表是由网络号,工艺路线号,通用计数器,以及项目交付件编号组成。自此用到的表就介绍到此了。
问题:我在选择网络的时候,任务列表以及负责人菜单就需要同时更新,选择任务时就需要更新人员表。
做法:其实做法很简单,触发一个onchange="change(this)"事件。然后js监控
<script type="javascript/css">
function changge(oo){//oo就是你传过来对对象
$.post(url,function(data){ //data就是处理完的传回来的字符串。
//在这里可以把字符串转化为数组,然后放到option中之后就和前一篇的恨相似了。
//注意:url是你处理的action后面可以传递参数。
//
});
}
</script>
我把js代码贴出来:
<script type="JavaScript/text">
function netSelectChange(ths){
var row = $("#datas tr").index($(ths).parent().parent()) + 1;
//jQuery获取行
$.post("ProjFileAssignAction!netSelectChange.action?aufnr="+ths.value,function(data){
//aufnr是网络号我传递的参数
var tasks = document.getElementsByName("pmodel.aful");
//pmodel.aful是任务的两个主键其中有工艺路线号和通用计数器分开 tasks是数组
var task = tasks[row-2];//获得当前行
task.options.length=0;//每次对任务菜单清零
var result = data.split(".");//字符串按"."拆分
var result = result[0].split(",");
//result数组中有工艺路线号,通用计数器,任务短描述,网络号,其中网络号是附加一起
//查询负责人的.
var aa = $.trim(result [1]) +","+ $.trim(result[2]) +","+ $.trim(result[0])//aa中村的就是工艺路线号,通用计数器,网络号,用来查询负责人的
//$.trim()是jQuery的去空格方法
taskNetSelectChange(aa,row);//把参数和行号传递给下个处理方法
//taskNetSelectChange()方法就是用来选择任务时查询负责人的
//taskNetSelectChange()和这个方法差不多
for(var i=0;i<result.length-1;i++){
var arr = result[i].split(",");
task.options.add(new Option($.trim(arr[3]),$.trim(arr[1])+","+$.trim(arr[2])+","+$.trim(arr[0])));
}
});
}
</script>
总结:
菜单1触发onchange事件 js中用$.post(url,function(data){
});url是调用的处理的action路径 data是传回来的字符串(在action中打出来的字符串)
再给目标菜单赋option就ok了
有问题提,大家一起解决.
下面介绍一些简单的小技巧等等```和大家分享
可能说起来关系比较乱吧。项目交付件分配表是由网络号,工艺路线号,通用计数器,以及项目交付件编号组成。自此用到的表就介绍到此了。
问题:我在选择网络的时候,任务列表以及负责人菜单就需要同时更新,选择任务时就需要更新人员表。
做法:其实做法很简单,触发一个onchange="change(this)"事件。然后js监控
<script type="javascript/css">
function changge(oo){//oo就是你传过来对对象
$.post(url,function(data){ //data就是处理完的传回来的字符串。
//在这里可以把字符串转化为数组,然后放到option中之后就和前一篇的恨相似了。
//注意:url是你处理的action后面可以传递参数。
//
});
}
</script>
我把js代码贴出来:
<script type="JavaScript/text">
function netSelectChange(ths){
var row = $("#datas tr").index($(ths).parent().parent()) + 1;
//jQuery获取行
$.post("ProjFileAssignAction!netSelectChange.action?aufnr="+ths.value,function(data){
//aufnr是网络号我传递的参数
var tasks = document.getElementsByName("pmodel.aful");
//pmodel.aful是任务的两个主键其中有工艺路线号和通用计数器分开 tasks是数组
var task = tasks[row-2];//获得当前行
task.options.length=0;//每次对任务菜单清零
var result = data.split(".");//字符串按"."拆分
var result = result[0].split(",");
//result数组中有工艺路线号,通用计数器,任务短描述,网络号,其中网络号是附加一起
//查询负责人的.
var aa = $.trim(result [1]) +","+ $.trim(result[2]) +","+ $.trim(result[0])//aa中村的就是工艺路线号,通用计数器,网络号,用来查询负责人的
//$.trim()是jQuery的去空格方法
taskNetSelectChange(aa,row);//把参数和行号传递给下个处理方法
//taskNetSelectChange()方法就是用来选择任务时查询负责人的
//taskNetSelectChange()和这个方法差不多
for(var i=0;i<result.length-1;i++){
var arr = result[i].split(",");
task.options.add(new Option($.trim(arr[3]),$.trim(arr[1])+","+$.trim(arr[2])+","+$.trim(arr[0])));
}
});
}
</script>
总结:
菜单1触发onchange事件 js中用$.post(url,function(data){
});url是调用的处理的action路径 data是传回来的字符串(在action中打出来的字符串)
再给目标菜单赋option就ok了
有问题提,大家一起解决.
下面介绍一些简单的小技巧等等```和大家分享