Задать вопрос
@acces5_denied

Как передать с помощью javascript все выбранные значения чекбокса в php обработчик?

Необходимо передать из формы значения отмеченных чекбоксов в PHP обработчик для отправки письма.
<form class="form">
<input type="checkbox" name="format" class="format" id="design" value="Дизайн" checked>
<input type="checkbox" name="format" class="format" id="furniture" value="Мебель и материалы">
<input type="checkbox" name="format" class="format" id="repair" value="Ремонт">
<div class="input-wrap">
<div class="wrong">Поле не заполнено</div>
<input type="text" name="name" id="name" class="rfield" placeholder="Имя">
</div>
<div class="input-wrap">
<div class="wrong">Поле не заполнено</div>
<input type="text" name="number" id="number" class="rfield" placeholder="+7 (___) ___-____" >
</div>
<button type="submit">Отправить</button>
</form>

Код javascript который делает проверку и передает значения input в PHP обработчик
var form = $(".form");
	function checkInput(){
    	var f = true;
	    form.find('.rfield').each(function(){
	        if($(this).val() != ''){
				$(this).closest('.input-wrap').removeClass('empty_field');
	        } else {
				$(this).closest('.input-wrap').addClass('empty_field');
				f = false;
	        }
      	});
        return f;
	}

	form.find('.rfield').closest('.input-wrap').addClass('empty_field');

    function lightEmpty(){
	    form.find('.empty_field').addClass('empty-border');
	    form.find('.empty_field').addClass('wrong-text');
    }

    form1.submit(function(e){
      	if(checkInput() == false)
		    lightEmpty();
       	else {
       		var s={
       			name: $('#name').val(), 
       			number: $('#number').val(),
                        format: $('input[name=format]:checked').val(),
			};
        	$.post("/sender.php", s);
        	form.addClass("opacity");
        	$(this).find('.resend').fadeIn(300);
      	}
      	e.preventDefault();
      	return false;
	});
	$("input").click(function() {
		$(this).parent().removeClass('wrong-text');			
	})


сам обработчик

<?php
$to      = 'mail@mail.ru';
$subject = 'Тема';
$message = "Имя: {$_POST['name']}
\n Номер: {$_POST['number']}
\n Формат работы: {$_POST['format']}";
mail($to, $subject, $message);
?>


Дело в том что при реализации данного кода отправляется значение только первого отмеченного чекбокса, подскажите как передать массив значений выбранных элементов.
  • Вопрос задан
  • 752 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы