gorodska3ka
@gorodska3ka
Перфекционист зануда

Выборка по цвету товара в обработчике, как изменить код?

Необходимо сделать так, чтобы на почту приходил и номер телефона и ЦВЕТ который клиент выберет. С одним цветом всё работает, но если ставить больше, приходит пустое поле

5b041e5b3c4f1028802766.png
<?php
$sendto   = "gorodska3ka@yandex.ru"; // Обязательно измените e-mail на свой
$userphone = $_POST['form_one'];
$userphone = $_POST['form_two'];

$color = $_POST['white'];
$color = $_POST['gold'];
$color = $_POST['yellow'];
$color = $_POST['orange'];
$color = $_POST['green'];
$color = $_POST['red'];
$color = $_POST['pink'];
$color = $_POST['bordo'];
$color = $_POST['blue'];
$color = $_POST['bluee'];
$color = $_POST['blueee'];
$color = $_POST['purple'];
$color = $_POST['silver'];
$color = $_POST['brown'];
$color = $_POST['black'];
$color = $_POST['whitetwo'];
$color = $_POST['bronze'];
$color = $_POST['coral'];
$color = $_POST['crimson'];
$color = $_POST['sapphire'];
$content  = nl2br($_POST['form_one']);

// Формирование заголовка письма
$subject  = "Новая заявка";
$headers  = "From: " . strip_tags($usermail) . "\r\n";
$headers .= "Reply-To: ". strip_tags($usermail) . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html;charset=utf-8 \r\n";

// Формирование тела письма
$msg  = "<html><body style='font-family:Arial,sans-serif;'>";
$msg .= "<h3 style='font-weight:bold;border-bottom:1px dotted #ccc;'>Новая заявка</h3>\r\n";
$msg .= "<p><strong>Номер телефона:</strong> ".$userphone."</p>\r\n";
$msg .= "<p><strong>Цвет:</strong> ".$color."</p>\r\n";
$msg .= "</body></html>";

// отправка сообщения
if(@mail($sendto, $subject, $msg, $headers )) {
	echo "true";
} else {
	echo "false";
}
?>
  • Вопрос задан
  • 103 просмотра
Решения вопроса 1
coderisimo
@coderisimo
вот эту "колбасу" можно убрать

$color = $_POST['white'];
$color = $_POST['gold'];
$color = $_POST['yellow'];
$color = $_POST['orange'];
$color = $_POST['green'];
$color = $_POST['red'];
$color = $_POST['pink'];
$color = $_POST['bordo'];
$color = $_POST['blue'];
$color = $_POST['bluee'];
$color = $_POST['blueee'];
$color = $_POST['purple'];
$color = $_POST['silver'];
$color = $_POST['brown'];
$color = $_POST['black'];
$color = $_POST['whitetwo'];
$color = $_POST['bronze'];
$color = $_POST['coral'];
$color = $_POST['crimson'];
$color = $_POST['sapphire'];


а вот это - добавить

$color = 'default'; // здесь дефолтный цвет, на случай, если ничего не будет выбрано
$colors = ['white', 'gold', 'yellow'] ; // массив всех возможных цветов
foreach($colors  as $oneColor){
  if(!empty($_POST[$oneColor])){
     $color  = $_POST[$oneColor];
     break;

} }
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
но если ставить больше, приходит пустое поле

у вас переменная $color переписывается кругами, и в конце в ней лежит значение $_POST['sapphire']
Ответ написан
Ваш ответ на вопрос

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

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