 
			
				18.01.2018, 01:08
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.05.2017 
					
					
					
						Сообщений: 31
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Передавать массив через checkbox
			 
			
		
		
		
		Есть форма, где много полей 
<input type="checkbox" name="checkbox" value="" item_cat="list">
<input type="checkbox" name="checkbox" value="" item_cat="food">
<input type="checkbox" name="checkbox" value="" item_cat="cars">
 
Хочу при клике на поле сохранять/удалять его значение  item_cat в скрытое поле, что бы потом передать бекенд.
 
$(document).on("click", "[name=checkbox]", function(){
      var c_pref = $(this).attr('item_pref');
  });
В скрытое поле хочу соберать их виде  food,cars,list, последовательность не имеет отношения...
 
Спасибо.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				18.01.2018, 01:35
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Pantela,
 http://api.jquery.com/serialize/
 
<!DOCTYPE html>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script>
$(function() {
$(document).on("click", "[name=checkbox]", function(){
      var c_pref = [];
      $("[name=checkbox]:checked").attr('item_cat', function(i, item) {
      c_pref.push(item)
});
c_pref += "";
alert(c_pref);
  });
});
  </script>
</head>
<body>
<input type="checkbox" name="checkbox" value="" item_cat="list">
<input type="checkbox" name="checkbox" value="" item_cat="food">
<input type="checkbox" name="checkbox" value="" item_cat="cars">
</body>
</html>
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				18.01.2018, 02:07
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Тлен 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 02.01.2010 
					
					
					
						Сообщений: 6,601
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
<input type="checkbox" name="checkbox" value="" item_cat="list">
<input type="checkbox" name="checkbox" value="" item_cat="food">
<input type="checkbox" name="checkbox" value="" item_cat="cars">
<input type="//hidden" name="checkbox-list" value="">
<script type="text/javascript" src="//code.jquery.com/jquery-1.9.1.js"></script>
<script>
$(document).on('click', 'input[name="checkbox"]', function(){
  $('input[name="checkbox-list"]').val(
    $('input[name="checkbox"]:checked')
    .map(function(){
      return this.getAttribute('item_cat')
    })
    .toArray()
    .join(',')
  )
});
</script>
 
		
	
		
		
		
		
		
			
				__________________ 
				29375, 35 
 
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				18.01.2018, 03:17
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Aetae,
 
	
 
	| 
		
			 Цитата: 
		
	 | 
 
	| 
		достаточно одной таблетки
	 | 
 
	
 
  
<input type="checkbox" name="checkbox" value="" item_cat="list">
<input type="checkbox" name="checkbox" value="" item_cat="food">
<input type="checkbox" name="checkbox" value="" item_cat="cars">
<input type="//hidden" name="checkbox-list" value="">
<script type="text/javascript" src="https://code.jquery.com/jquery-1.9.1.js"></script>
<script>
$(document).on('click', 'input[name="checkbox"]', function(){
  $('input[name="checkbox-list"]').val(
    $.map($('input[name="checkbox"]:checked'),function(el){
      return el.getAttribute('item_cat')
    })
  )
});
</script>
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				18.01.2018, 03:19
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		или так  
<input type="checkbox" name="checkbox" value="" item_cat="list">
<input type="checkbox" name="checkbox" value="" item_cat="food">
<input type="checkbox" name="checkbox" value="" item_cat="cars">
<input type="//hidden" name="checkbox-list" value="">
<script type="text/javascript" src="https://code.jquery.com/jquery-1.9.1.js"></script>
<script>
$(document).on('click', 'input[name="checkbox"]', function(){
  $('input[name="checkbox-list"]').val(
    $('input[name="checkbox"]:checked')
    .map(function(){
      return this.getAttribute('item_cat')
    })
    .get()
  )
});
</script>
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				18.01.2018, 06:49
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Выбросить скрытое поле, то что в item_cat должно быть именем полей, и тогда бразуер без всяких скриптов отправит на сервер выбранное. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				18.01.2018, 13:12
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.05.2017 
					
					
					
						Сообщений: 31
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Всем большое спасибо. 
 
Без скрытого поля помоему никак, т.к. я поля выделяю записи, беру ихрнее value, и потом передаю все пачой на бекенд. 
Передавать все по шагам при веденении не вариант. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				18.01.2018, 13:16
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Pantela
			
		
	 | 
 
	| 
		Без скрытого поля помоему никак, т.к. я поля выделяю записи, беру ихрнее value, и потом передаю все пачой на бекенд.
	 | 
 
	
 
 Полная чушь, а кроме того пагубная для сервера.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				18.01.2018, 13:31
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Тлен 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 02.01.2010 
					
					
					
						Сообщений: 6,601
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		рони, это всё неявно, у меня же по пунктам понятно что происходит.)
 
	
 
	
		
			Сообщение от Pantela
			 
		
	 | 
 
	| 
		Передавать все по шагам при веденении не вариант.
	 | 
 
	
 
  Зачем по шагам то, если у чекбоксов одно name - на сервер они прилетят в виде массива чекнутых value.  
		
	
		
		
		
		
		
			
				__________________ 
				29375, 35 
 
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				18.01.2018, 13:36
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Aetae
			
		
	 | 
 
	| 
		если у чекбоксов одно name - на сервер они прилетят в виде массива чекнутых value
	 | 
 
	
 
 Если сервер, это РНР, то с таким именованием, как у автора, сервер получит только последний флажок из выбранных. Чтобы все получить имена должны быть как name="checkbox[]".
 
Наличие <input type="//hidden" name="checkbox-list" value=""> и оперирование его значением на сервере говорит о том, что на сервере полный бардак, а о "безопасности" даже и не думают.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |