2012-10-01 134 views
2

我有一個html表,並在每一行上,我想添加一個刪除按鈕。 當用戶點擊它時,我想做兩件事:如何從表中刪除一行

1)從表中刪除該行。 2)從被刪除的行中提取數據 - 一個特定的單元格,然後使用該值將ajax調用到將從數據庫中刪除記錄的函數。該函數返回一個新的項目列表,然後我將使用它重新顯示相同的表格。

我發現從別人以下職位上計算器: How to remove current row from table in jQuery?

所以我想這點的地址數之一。但我不知道如何修改帖子的選定答案中的代碼,以便獲取行中的id值,然後進行ajax調用。

 <table class="table table-bordered table-striped" id="databaserecords"> 
     <thead> 
      <tr> 
       <th>Id</th> 
       <th>Name</th> 
       <th>Status</th> 
       <th>Voice</th> 
       <th>Jumbo</th> 
       <th>Mode</th> 
       <th>&nbsp;</th> 
      </tr> 
     </thead> 
     <tbody> 

      <?php foreach ($dblist as $record): ?> 
       <tr>   
       <td class ='recordId'><?php echo $record['Id'] ?></td> 
       <td class ='recordName'><?php echo $record['Name'] ?></td> 
       <td><?php echo $record['Status'] ?></td> 
       <td><?php echo $record['Voice'] ?></td> 
       <td><?php echo $record['Jumbo'] ?></td> 
       <td class='recordmode'><?php echo $record['Mode'] ?></td> 
       <td><button id="deleteRecord">Delete Record</button></td> 
      </tr> 
      <?php endforeach ?> 


<script> 

    $('#deleteRecord').live('click', function() { 

       //get a count of all records. only allowed to delete if you have more than one record. 
       var recCount = $('#databaserecords tbody tr').length; 

       if (recCount > 1) 
       { 
        $thevalueIwanttoSave = $(this).closest('recordId').val(); 
           alert($thevalueIwanttoSave); 
          } 

    }); 

</script> 

現在,警報總是說我的變量是未定義的。 你能指出我正確的方向嗎?我知道如何編寫ajax調用...我想我只需要幫助從表格中獲取值。

謝謝。

回答

2

您選擇是不正確的。

$thevalueIwanttoSave = $(this).parent().siblings('.recordId').text(); 

closest選擇元件(的recordId不是父母/祖父母或您的按鈕元素的..)最親密的父母和你也錯過了.類選擇。 val用於獲取/設置表單元素的值,對於td元素您應該使用texthtml方法。另請注意,ID必須是唯一的(您可以使用類代替)並且live方法已過時,您可以使用on方法。

$('#databaserecords').on('click', '.deleteRecord', function() { 

    var recCount = $('#databaserecords tbody tr').length; 

    if (recCount > 1) { 
     var text = $(this).parent().siblings('.recordId').text(); 
     alert(text); 
     // $(this).closest('tr').remove() 
    } 

});​ 
-1

將ID添加到刪除按鈕的屬性中,然後通過jQuery獲取它。

在你的PHP循環:

<button class="deleteRecord" recordID="<?php echo $record['Id'] ?>">Delete Record</button>
在JQuery中

$(".deleteRecord").click(function() { 
    var id = $(this).attr("recordID"); 
    ... 
});
-1

應該.recordId,不recordId

$thevalueIwanttoSave = $(this).closest('.recordId').val(); 
    alert($thevalueIwanttoSave); 
0
$thevalueIwanttoSave = $(this).parent('tr').find('.recordId').text(); 
-1

您需要使用.選擇具有一流的recordId的元素。還可以使用text()來獲得值:

$thevalueIwanttoSave = $(this).siblings('.recordId').text(); 
alert($thevalueIwanttoSave);