动态生成tr,并将其下控件的值拼接后传到后台并保存

时间:2023-03-08 20:36:38

有两个表(主表和子表),现在需要根据主表某一个字段动态的生成记录(一条记录就一个tr),然后再讲tr下控件的各个值取出来,传到后台,并保存到子表。

html代码:

<!--#for(Record m:modes)-->
<tr class="trclass" id=${m.id}>
<td>
<label>${m.modelname}</label>:
<input type="radio" id="du2${for.index}" value="2" #if(m.du=="2") checked="checked" #end  name="${m.modelcode}" class=form_checkbox/> <label>小于3</label>
<input type="radio" id="du1${for.index}" value="1" #if(m.du=="1") checked="checked" #end name="${m.modelcode}" class=form_checkbox/> <label>3~30</label>
<input type="radio" id="du0${for.index}" value="0" #if(m.du=="0") checked="checked" #end name="${m.modelcode}" class=form_checkbox/> <label>30</label>
<input type="text" id="Time*${for.index}" class="Time"  value="${m.Time}" /> </span>
</td>
</tr>
<!--#end-->

js代码:

var durationhold=""   //用来保存动态的记录
$(".trclass").each(function () {  //依次循环每一行
var id = $(this).attr("id");       //获取当前行的id
var modelcode=$(this).find(":radio[class=form_checkbox]:checked").attr("name");  //获取当前行选中radio的name

var du=$(this).find(":radio[class=form_checkbox]:checked").val(); //获取当前行选中radio的值

var time=$(this).find(".Time").val();   //获取当前行样式为.Tme 的控件的值
if(durationhold==""){
durationhold= modelcode + "|||" + time+ "|||" + du+ "|||" + id;  //如果这是动态生成的第一条记录
}else{
durationhold=durationhold+ "$$$" + modelcode + "|||" + time+ "|||" + du+ "|||" + id;  //如果这不是动态生成的第一条记录
}
});

Java后台代码

public void save(String durationholds) {
String[] durationhold = durationholds.split("\\$\\$\\$");
for (int i = 0; i < durationhold.length; i++) {
String id=durationhold[i].split("\\|\\|\\|")[3];
TimeH time = new TimeH ();
time .set("ID",id);
time .set("MODELCODE", durationhold[i].split("\\|\\|\\|")[0]);
time .set("TIME",durationhold[i].split("\\|\\|\\|")[1]);
time .set("DU",durationhold[i].split("\\|\\|\\|")[2]);
time .saveOrUpdate(false);
}