Как отправить данные всех checkbox в бд?

353
07 октября 2017, 20:39

Как правильно реализовать запись 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;?>>

Answer 1

Без 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;?>>
Answer 2

Если есть список значений в переменной, то реализуй перебор значений и проверку на есть оно в массиве что приходит или нет.

//$inputs - массив возможных значений наших чекбоксов
foreach($inputs as &$input){
    if(in_array($input,$_POST['check'])){
      //Если чекбокс выбран.
    }else{
      //Если нет
    }
}
Answer 3

Я бы это сделал так:

(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>

READ ALSO
Скрипт не видит функцию scroolly

Скрипт не видит функцию scroolly

В файле assets/js/parallax-settingsjs использую код:

394
equalHeights Jquery

equalHeights Jquery

Ребят, есть вот такой плагин, может кто подскажет, как сделать проверку, чтобы при ресайзе окна, когда разрешение будет меньше 767px, он отключался...

377
выполнение скриптов при подгрузке ajax

выполнение скриптов при подгрузке ajax

Здравствуйте, стоит задача плавной подгрузки секций лендинга при прокруткеРеализовал подгрузку посекционно

257