2012-08-25 85 views
0

過去兩天使用jquery iam嘗試獲取通過調用ajax.i通過調用servlet執行更新所需的單元格值使用了雙擊事件用文本框替換單元格以編輯值,當文本框失去焦點時,將值傳遞給servlet.i需要傳遞編輯後的值以及用於更新表的ID號。現在,我需要獲取行的id值用戶編輯的內容。傳遞單元格值以便使用ajax更新表格

我試圖獲取值,但只有第一行得到更新,因爲我只能得到第一行的id值。如何獲取其他行的值,以便用戶可以更新所有行。

<script> 
     $(function(){ 
    $('.table-cell').dblclick(function(){ 
// if ($(this).attr('editing') == '0') 
// { 
    // only trigger this when the cell is not in edit mode 
    $(this).attr('editing',1); 

    // show the input 
    var input = $('<input type="text" value="'+$(this).html()+'">'); 
    $(this).html(''); 
    $(this).append(input); 

    // bind blur event to input 
    input.blur(function(){ 

     // update value from input to the table cell 
     var value = $(this).val(); 
     // alert(value); 
     $(this).parent().text(value); 
     $(this).parent().attr('editing',0); 
     //this will get only the first id value,no matter which column i edit 
     var fid= document.getElementById("filename").textContent; 
     // alert(fid); 
     //this will iterate 
    $('#table').ready(function() { 
     $(this).find('.filename').each(function() { 
      alert($(this).html()); 
     }) 
    }) 




     // send the data to the server for update 
     $.ajax({ 
      url: 'update', 
      data: {text1:value,filename1:fid}, 
      type:"POST", 
      dataType:"json", 
      error:function(data){ 
       // alert('error') 
      }, 
      success: function(data) { 
       //alert('updated!') 
      } 
     }); 

    }); 
// } 
}); 
    }); 
</script> 
<table border="1" id="table"> 
<th>S.NO</th> 
<th>Description</th> 
<th>File Name</th> 
<th>Category</th> 
<th>Sector</th> 
<th>Delete</th> 
<th>Edit</th> 
<c:forEach items="${fileDetails}" var="item" varStatus="counter"> 
<tr> 
<td>${counter.count}</td> 
<td onDblclick="javascript:doubleclick(this);" >${item.filedesc}</td> //editable row 
<td><a href="download?name=${item.filepath}" id="changes">${item.filenaame}</a></td> 
<td>${item.category}</td> 
<td>${item.sector}</td> 
<td hidden="true" id="filename" class="filename" index="1" >${item.id}</td> //id values from db table 
<td> <input type="submit" onclick="filedelete('${item.id}','${item.sector}')" value="Delete"> </td> 

</tr> 

</c:forEach> 
<input type="hidden" name="delete" id="delete" > 
<input type="hidden" name="num" id="num"> 
<input type="hidden" name="sect" id="sect"> 

</table> 

回答

0

可以編碼行數,例如像:

<tr index="counter.index"> 

...比在適當的地方

row=$(this).parent().attr("index") 
+0

IAM弄個的jQuery越來越我的ID值表格數據庫通過這個 $ {item.id}計數器只顯示行數,它不是從數據庫派生的 – ksa

+0

難道你不能然後將該行的屬性設置爲item.id? – kwicher

+0

我做了,但它不工作,沒有來自數據庫的ID值,我不能更新 – ksa