2015-12-15 54 views
0

惠,在複選框中存儲jQuery中的數組值

一直試圖做到這一點,但仍然沒有解決方案。我想從array中存儲一個Input checkboxpost這個selected checkbox的值用於刪除目的。當用戶選擇超過1時,我無法獲得複選框的值。我可以知道使用jQuery存儲數組值的正確方法。下面是HTML複選框代碼:

<input type="checkbox" name="checkBox[]" id="checkBox" value='".$row['staff_id']."'> 

,這是jQuery的:

$(document).ready(function() { 
$("#del").click(function(){ 
    var del = $("#del").val(); 
    var checkBox = $("#checkBox:checked").val(); 
    $.post('admin_cuti/staff-delete.php', 
    { 
     del : del, 
     checkBox : checkBox 
    }, function(data){ 
     $("#result_del").html(data) 
     }); 
    }); 
}); 

delete.php更新全碼。用戶可以點擊多個 複選框刪除數據。在我的情況下,它只能刪除1行。 下面是代碼:

<?php 
require_once('../db_connection/connection-intra.php'); 
//Delete function 
if(isset($_POST['del'])){ 
    if(empty($_POST['checkBox'])){ 
     echo "<span style="."color:red"."><br>&nbsp;No record selected</span><p/>"; 
    } 
    elseif(isset($_POST['checkBox'])){ 
     $checkbox = $_POST['checkBox']; 
     for($i=0;$i<count($_POST['checkBox']);$i++){ 
      $del_id = $checkbox[$i]; 

      $sql = "DELETE FROM staff WHERE staff_id='$del_id'"; 
      if (mysqli_query($conn, $sql)) { 
       echo "Record deleted successfully"; 
      } else { 
       echo "Error deleting record: " . mysqli_error($conn); 
      } 
     } 
    } 
} //end of delete function 
?> 

進出口仍然在學習尤其是在jQuery和JavaScript的Web編程的過程。請給我一個建議/評論,謝謝!

+0

待辦事項你有多個複選框? –

+0

而不是你可以發送數組 – Jai

+2

對於每個元素,Ids應該是唯一的,並且你正在複製這些元素。 – Jai

回答

1

嘗試:

$("#del").click(function(){ 
     var del = $(this).val(); 
     var checkBox = $(this).closest('form').find('input[type="checkbox"]:checked'); 
var values = []; 
    $.each(checkBox,function(i,v){ 
     values.push($(v).val()); 
    }); 
     $.post('admin_cuti/staff-delete.php', 
     { 
      del : del, 
      checkBox : values 
     }, function(data){ 
      $("#result_del").html(data) 
      }); 
     }); 
+0

我試過的代碼,但它仍然只選擇1行。如果用戶選擇多於1,則會選擇所選擇的複選框 – Amran

+0

的最大值更新我的代碼 – madalinivascu

+1

感謝您的幫助。有用! – Amran

0

您有複選框元素重複的ID。而id選擇器只在匹配的集合中選擇第一個元素。你可以比較使用同一類(比如checkBox)的所有複選框,然後使用類選擇瞄準他們:

var checkBox = $(".checkBox:checked").val(); 

你也可以使用屬性等於部門根據name屬性來定位複選框:

var checkBox = $('[name="checkBox[]"]:checked').val(); 
+0

我試圖使用這個類,但它只選擇1行只爲值 – Amran

+0

@Amran:你能分享小提琴嗎? –