Hye,
尝试这样做但仍然没有解决方案。我想在表单中存储Input checkbox
array
,并使用jQuery存储post
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> 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中。请给我一个建议/评论,谢谢!
答案 0 :(得分: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)
});
});
答案 1 :(得分:0)
您有复选框元素的重复ID。和id选择器只选择匹配集中的第一个元素。您可以为所有复选框使用相同的类(例如checkBox
),然后使用类选择器来定位它们:
var checkBox = $(".checkBox:checked").val();
您还可以使用属性相等扇区来定位基于名称属性的复选框:
var checkBox = $('[name="checkBox[]"]:checked').val();