Как обрабатывать chechbox при отправке заполненной формы?

Всем привет. Суть вопроса:
Имеется квиз, где в одном из всех вопросов надо выбрать несколько вариантов
Код вопроса с чекбоксами
<!-- ONE-STEP START -->
				<div class="step-slide">
					<h3 class="step-slide__title">
					Выбери цели, которые актуальны для тебя на сегодняшний день:
					</h3>
					<div class="step-slide__grid">
						<label for="step5-1" class="pick-item">
							<input class="pick-item__input" type="checkbox" name="step5" id="step5-1" value="Увеличить доход">
							<div class="pick-item__label">Увеличить доход</div>
						</label>
						<label for="step5-2" class="pick-item">
							<input class="pick-item__input" type="checkbox" name="step5" id="step5-2" value="Начать зарабатывать деньги">
							<div class="pick-item__label">Начать зарабатывать деньги</div>
						</label>
						<label for="step5-3" class="pick-item">
							<input class="pick-item__input" type="checkbox" name="step5" id="step5-3" value="Вернуть долги (кредит, ипотека)">
							<div class="pick-item__label">Вернуть долги (кредит, ипотека)</div>
						</label>
						<label for="step5-4" class="pick-item">
							<input class="pick-item__input" type="checkbox" name="step5" id="step5-4" value="Запустить собственный бизнес">
							<div class="pick-item__label">Запустить собственный бизнес</div>
						</label>
						<label for="step5-5" class="pick-item">
							<input class="pick-item__input" type="checkbox" name="step5" id="step5-5" value="Масштабировать бизнес">
							<div class="pick-item__label">Масштабировать бизнес</div>
						</label>
						<label for="step5-6" class="pick-item">
							<input class="pick-item__input" type="checkbox" name="step5" id="step5-6" value="Вырасти по карьерной лестнице">
							<div class="pick-item__label">Вырасти по карьерной лестнице</div>
						</label>
						<label for="step5-7" class="pick-item">
							<input class="pick-item__input" type="checkbox" name="step5" id="step5-7" value="Повысить уровень жизни (отдых, одежда, IPhone, MacBook)">
							<div class="pick-item__label">Повысить уровень жизни (отдых, одежда, IPhone, MacBook)</div>
						</label>
						<label for="step5-8" class="pick-item">
							<input class="pick-item__input" type="checkbox" name="step5" id="step5-8" value="Совершить крупную покупку (автомобиль, недвижимость)">
							<div class="pick-item__label">Совершить крупную покупку (автомобиль, недвижимость)</div>
						</label>
						<label for="step5-9" class="pick-item">
							<input class="pick-item__input" type="checkbox" name="step5" id="step5-9" value="Улучшить свои навыки">
							<div class="pick-item__label">Улучшить свои навыки</div>
						</label>
						<label for="step5-10" class="pick-item">
							<input class="pick-item__input" type="checkbox" name="step5" id="step5-10" value="Заняться спортом (тело, здоровье)">
							<div class="pick-item__label">Заняться спортом (тело, здоровье)</div>
						</label>
						<label for="step5-11" class="pick-item">
							<input class="pick-item__input" type="checkbox" name="step5" id="step5-11" value="Повысить личную эффективность">
							<div class="pick-item__label">Повысить личную эффективность</div>
						</label>
						<label for="step5-12" class="pick-item">
							<input class="pick-item__input" type="checkbox" name="step5" id="step5-12" value="Попасть в сильное и влиятельное окружение">
							<div class="pick-item__label">Попасть в сильное и влиятельное окружение</div>
						</label>
						<div id="next5" class="btn-next-container"></div>
					</div>
				</div>
				<!-- ONE-STEP END -->


А вот код обработчика:
Код обработчика mail.php
<?
if((isset($_POST['phone'])&&$_POST['email']!="")){ //Проверка отправилось ли наше поля name и не пустые ли они
        $to = 'Мыло куда присылать,'; //Почта получателя, через запятую можно указать сколько угодно адресов
        $subject = 'Ответы квиза'; //Загаловок сообщения
        $message = '
                <html>
                    <head>
                        <title>'.$subject.'</title>
                    </head>
                    <body>
                        <p>'.$_POST['step1'].'</p>                        
                        <p>'.$_POST['step2'].'</p>                        
                        <p>'.$_POST['step3'].'</p>                        
                        <p>'.$_POST['step4'].'</p>
                        <p>'.$_POST['step5'].'</p>
                        <p>'.$_POST['step6'].'</p>                                             
                        <p>'.$_POST['phone'].'</p>
                        <p>'.$_POST['email'].'</p>                           
                    </body>
                </html>'; //Текст нащего сообщения можно использовать HTML теги
        $headers  = "Content-type: text/html; charset=utf-8 \r\n"; //Кодировка письма
        $headers .= "From: Отправитель <from@example.com>\r\n"; //Наименование и почта отправителя
        mail($to, $subject, $message, $headers); //Отправка письма с помощью функции mail
}
?>


Но при отправке заполненной формы, приходит только 1 выбранный вариант. Если в html в поле name менять значение, к примеру 51, 52, то тогда форма не отправляется, скажите, что можно сделать, чтобы все выбранные ответы приходили?
  • Вопрос задан
  • 108 просмотров
Решения вопроса 1
@ljutaev
html-програмист
if((isset($_POST['phone'])&&$_POST['email']!="")){ //Проверка отправилось ли наше поля name и не пустые ли они
    $to = 'Мыло куда присылать,'; //Почта получателя, через запятую можно указать сколько угодно адресов
    $subject = 'Ответы квиза'; //Загаловок сообщения
    $c = true;

    foreach ( $_POST as $key => $value ) {
        $message .= "" . ( ($c = !$c) ? '<tr>':'<tr style="background-color: #f8f8f8;">' ) . "
            <td style='padding: 10px; border: #e9e9e9 1px solid;'><b>$key</b></td>
                <td style='padding: 10px; border: #e9e9e9 1px solid;'>$value</td>
            </tr>
        ";
    }
    $headers  = "Content-type: text/html; charset=utf-8 \r\n"; //Кодировка письма
    $headers .= "From: Отправитель <from@example.com>\r\n"; //Наименование и почта отправителя
    mail($to, $subject, $message, $headers); //Отправка письма с помощью функции mail
}

и просто задай чекбоксам разные имена
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
PavelMonro
@PavelMonro
Меняем у всех полей name="step5" на name="step5[]" и получаем в php массив и обрабатываем его
Ответ написан
Ваш ответ на вопрос

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

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