Как правильно реализовать запись checkbox в бд? Если я их выбираю то постом получаю данные только выбранных. А вот если я хочу снят галочку и, что бы в бд записалось, то что галочка снята. Подскажите.(Вариант ajax не подойдет) Наверно нужно как то получать данные со всех checkbox или используя JQuery по событию.(не очень хорошо JQuery и JS знаю, думаю это используя их делается)
<input name="check[]" value="<?php echo $d->id; ?>" type="checkbox" class="checkbox" <?php if($d->mark == 1):?>checked <?php endif;?>>
Без js можно создать дубликат инпута, если чекбокс не выбран то придет значение спрятанного инпута:
<input name="check[]" value="0" type="hidden">
<input name="check[]" value="<?php echo $d->id; ?>" type="checkbox" class="checkbox" <?php if($d->mark == 1):?>checked <?php endif;?>>
Если есть список значений в переменной, то реализуй перебор значений и проверку на есть оно в массиве что приходит или нет.
//$inputs - массив возможных значений наших чекбоксов
foreach($inputs as &$input){
if(in_array($input,$_POST['check'])){
//Если чекбокс выбран.
}else{
//Если нет
}
}
Я бы это сделал так:
(function(){
var dataToBeSend = {};
$.each($("[type='checkbox']"), function(i,item){
dataToBeSend[$(item).data("name")] = $(item).prop('checked');
});
// какой-то модуль, который занимается ajax вызовами
//_ajaxModule.call(url, dataToBeSend);
})();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="canvas">
<input type="checkbox" data-name="first">
<input type="checkbox" data-name="second">
<input type="checkbox" data-name="third">
</div>
</body>
</html>
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости