Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Получение данных из группы checkbox (https://javascript.ru/forum/jquery/73844-poluchenie-dannykh-iz-gruppy-checkbox.html)

igrshrn 21.05.2018 11:46

Получение данных из группы checkbox
 
Добрый день, задача стоит такая:
Есть группа кнопок https://ibb.co/dpQtWT - такой вид на сайте. (через тег ссылка не работает)
<div class="row filter-selects">
			<?php if(!empty($filters["manufacturers"])): ?>
				<div class="col-md-3 select">
					<label>Производитель:</label><br />
						<div class="search" name="manufacturer">
						<?php foreach ($filters["manufacturers"] as $key => $m ): ?>
							<span>
								<input type="checkbox" class="manufacturer" name="manufacturer" id="<?=$m?>" value="<?=$m?>">
								<label class="button-check-label" for="<?=$m?>">
									<?=$m?>
								</label>
							</span>
						<?php endforeach; ?>
					</div>
				</div>
			<?php endif; ?>

			<?php if(!empty($filters["amperages"])): ?>
				<div class="col-md-3 select">
					<label class="text-nowrap">Номинальный ток:</label><br />
						<div class="search" name="amperage">
						<?php foreach ($filters["amperages"] as $a): ?>
							<span>
								<input type="checkbox" class="button-check" name="amperage" id="<?=$a?>" value="<?=$a?>">
								<label class="button-check-label" for="<?=$a?>">
									<?=$a?>
								</label>
							</span>
						<?php endforeach; ?>
					</div>
				</div>
			<?php endif; ?>
...
</div>


Как мне получить массив данных с checkbox, вида
result = [
manufacturer[0 => ...,
1 => ...]
amperage[0 => ...]
]
Под точками имею ввиду значения нажатых чекбоксов. Код js сейчас имеет вид
$(".filter-selects").on('change', 'input[type=checkbox]', function() {
			$("#filter-btn .submit").hide();
			$("#progress").show();
			var empty = 0;
			$("input[type=checkbox]:checked").map(function(id, elem) {
				var name = $(elem).attr('name');
				var val = $(elem).val(); 
				var arr = [];
				res[name] = val;
				});
			console.log(res);
}

j0hnik 21.05.2018 12:38

var result;
$('input[type="checkbox"]').change(function(){
	result = ['manufacturer', $('[name="manufacturer"]:checked').map(function(indx, element){
		return $(element).val();
	}), 'amperage', $('[name="amperage"]:checked').map(function(indx, element){
		return $(element).val();
	})];
});

igrshrn 21.05.2018 12:43

Благодарю!


Часовой пояс GMT +3, время: 00:39.