2012-05-31 51 views
1

我創建了一個顯示JSON結果的表格來消除任何類型的材質,爲它生成的表格會添加一個複選框,然後當用戶勾選了複選框時,我會從第一列中取數據爲執行「刪除」並刪除檢查行數的記錄。如何從行表中的特定列/單元格中選中複選框獲取值?

也就是說,如果4行被選中,那麼應該有一個函數,從各行的第一列取數據,因此可以通過在jQuery.ajax PHP文件發送它們進行處理,但我不能想怎麼辦

代碼來生成使用複選框表中的每一行

// ... 
$.ajax({ 
type: "POST", 
url: action, 
data: dataSearch, 
success: function (response) { 
    if (response[0].success == "success") { 
     $('.tableBajaMat tr:gt(0)').remove(); //delete tr except first row 
     $.each(response, function (index, record) { 
      var row = $("<tr />"); 
      $("<td />").text(record.clavemat).appendTo(row); 
      $("<td />").text(record.tipomat).appendTo(row); 
      $("<td />").text(record.titulomat).appendTo(row); 
      $("<td />").text(record.autormat).appendTo(row); 
      $("<td />").html("<input type='checkbox' id='marcar'/>").appendTo(row); 
      row.addClass("alt"); 
      row.appendTo(".tableBajaMat"); 
     }); 
    } else { 
     alert("Data not found!"); 
    } 

} 
}); 
return false; 

回答

2

旁白之前,我給我的實際答案:你不應該被賦予同一個ID超過一個html元素,儘管要實現你想要做的checkb oxes根本不需要id。相反,您似乎在使用「.tableBajaMat」類作爲唯一標識符,所以這就是您應該使用id的地方。但無論如何...

假設您創建了一個按鈕,觸發刪除當前選中的複選框,你可以做這樣的事情:

<input type="button" id="deleteBtn" value="Delete Selected"> 

$('#deleteBtn').click(function() { 

    var clavemats = [], 
     $selectedCBs = $('.tableBajaMat input[type="checkbox"]:checked'); 

    if ($selectedCBs.length === 0) { 
     alert("No rows selected to delete."); 
     return; 
    } 
    $selectedCBs.each(function() { 
     clavemats.push($(this).closest('tr').children(':first').text()); 
    }); 
    // now clavemats is an array of the clavemat values 
    $.ajax({ 
     url : 'yourURLhere.php', 
     data : { clavemat : clavemats } 
     success : function(data) { 
      // whatever you want to do on success goes here 
     } 
    }); 

}); 

以上遍歷所有在表中選中的複選框的。在.each()內的回調this是當前複選框,因此$(this).closest('tr').children(':first').text()獲取當前複選框所在的tr元素的第一個子元素的文本。這些值被卡在數組中,然後該數組在該Ajax請求中傳遞參數名稱「clavemat」 - 顯然,您可以將其更改爲任何您想要的名稱。

+0

感謝您的回答,它證明了幾個小時,併發布結果! – SoldierCorp

+0

它的工作原理! ...但是沒有太多的麻煩,在發送clavemat數組之後,如何在php文件中應用DELETE從TABLE where cve = element_array ?? – SoldierCorp

+0

對不起,我不是一個PHP的傢伙 - 我做的是Java或.NET(儘管我有時會發現現有PHP代碼的問題,但我不知道如何從頭開始編寫這種功能)。 – nnnnnn

相關問題