ajax js 批量修改往后台传数据

KrisX 发布于 2013/06/25 11:10
阅读 3K+
收藏 1

如图 ,我现在要做批量修改选中的数据,但是每一条数据怎么跟checkbox绑定然后往后台传选中的数据做修改操作呢,$(document).ready(function(){
  $('#sub').click(function (){
           // 判断是否至少选择一项 
     var checkedNum = $("input[name='ids']:checked").length;
     if(checkedNum == 0) {
     alert("请选择至少一条请假记录!");
     return;
     }
     // 批量选择
     if(confirm("确定要处理所选请假记录?")) {
      var checkedList = new Array();
       $("input[name='ids']:checked").each(function() {
       checkedList.push($(this).val());
          });
      var checkedList1 = new Array();
       $("input[name='${awardPenaltyId}awardPenaltyDate']:checked").each(function() {
       checkedList1.push($(this).val());
          });
                        $('#sub').attr('disabled','disabled');
      if($('#sub').val()=='财务确认罚款'){
         $.ajax({
         type:'POST',
         url:'hr/penaltyConfirmAction!confirmPenalty.action',
         dataType:'json',
         data: {'awardPenaltyDates':checkedList1.toString()},
         success:function(reData,status){
          if('success'==status){
           if(reData!=null){
            alert(reData);
            location.href='leaveConfirmAction!execute.action';
           }
          }else{
           alert('連接服務器失敗....'); 
          }
         }});    
         }

想这样通过JS AJAX  拼接选中的数据往后台传,该怎么拼接呢? <td><input type="checkbox" id="ids" name="ids" value='<s:property value="awardPenaltyId"/>'/></td>
        <td><s:property value="awardPenaltyNo" /></td>
        <td><s:property value="userName" /></td>
        <td><s:property value="workId" /></td>
        <td><s:property value="departmentName" /></td>
        <td><s:property value="roomName" /></td>
        <td><s:property value="positionName" /></td>
        <td><s:property value="penaltyTypeName" /></td>
        <td><s:property value="remark" /></td>
        <td><s:property value="awardPenaltyMoney" /></td>
        <td><s:property value="awardPenaltyPerson" /></td>
        <td><s:date name="awardPenaltyMoneyDate" format="yyyy-MM-dd" /></td>
        <td><input name="awardPenaltyDate" id="${awardPenaltyId}awardPenaltyDate" value="<s:date name="#pena.awardPenaltyDate" format="yyyy-MM-dd" />" type="text"  size="9" class="text" onclick="WdatePicker();"></td>
        <td><input name="financialRemark" id="${awardPenaltyId}financialRemark" type="text"  size="50" class="text"></td>
      </tr>

加载中
0
i
i仅此而已

大概看你的请求,如果你用的是struts2 ,它默认是支持 list map等类型的转换的。

1、首先你要在 action上定义一个 list<待修改对象> 的对象,给定好set get方法。

2、你先不用ajax传送数据,先通过普通的form提交修改的数据,再通过firbug查看你提交的数据格式(因为格式我也记不清了)。

3、最后将你的请求方式改为ajax,拼接的格式就是第2步我说的,无论是 POST还是GET都是OK的。



KrisX
KrisX
谢啦,但是我要提交的数据是有选择性的,没有勾选的数据不能提交过去,你这样好像把所有数据都提交过去了吧
0
i
i仅此而已
可以这样
private List<User> users;
在页面这样
<input type="text" name="users[0].name" value="aaa" />  
<input type="text" name="users[1].name" value="bbb" />
所以你提交的内容应该是这样的   ajax提交的内容应该是 users[0].name='aaa'&users[1].name='bbb',后台的users对象应该是两个对象,试试看!
返回顶部
顶部