Отправка PHP-формы на разные электронные письма на основе кнопок радиосвязи

Я видел ряд вопросов, подобных этому, но так как я новичок в PHP, мне трудно помещать функцию в нужное место. У меня есть что-то мощенное вместе в PHP и HTML, но я, кажется, что-то не хватает вокруг области $radio . У кого-нибудь есть предложения?

 <?php $name = $_POST['name']; $email = $_POST['email']; $radio = isset($_POST['radio']) ? $_POST['radio'] : 'default'; switch ($radio) { case 'Eval CH': $to = 'blah@blah.com'; break; case 'Eval ELL': $to = 'sigh@sigh.com'; break; } $message = $_POST['message']; $from = 'From: WAC Site'; $subject = 'WAC Contact Message'; $human = $_POST['human']; $body = "From: $name\n E-Mail: $email\n Message:\n $message"; if ($_POST['submit'] && $human == '4') { if (mail ($to, $subject, $body, $from)) { echo '<p>Your message has been sent!</p>'; } else { echo '<p>Something went wrong, go back and try again!</p>'; } } else if ($_POST['submit'] && $human != '4') { echo '<p>Either you are a robot, or you are very, very bad at math.</p>'; } ?> 

Вот мой HTML:

 <form method="post" action="contact_options.php"> <label>Name</label><br> <input name="name" placeholder="Type Here"><br> <br> <label>Email</label><br> <input name="email" type="email" placeholder="Type Here"><br> <br> <input type="radio" name="Eval CH" value="to">Email Blah<br> <input type="radio" name="Eval ELL" value="to">Email Sigh<br> <label>Message</label><br> <textarea name="message" placeholder="Type Here"></textarea><br> <br> <label>*What is 2+2? (Anti-spam)</label> <input name="human" placeholder="Type Here"><br /> <input id="submit" name="submit" type="submit" value="Submit"><br> </form> 

Related of "Отправка PHP-формы на разные электронные письма на основе кнопок радиосвязи"

Проблема в том, что $_POST['radio'] не существует, как у вас есть настройка формы. Только вещи с name= передаются $_POST .

Измените условие в вашем обработчике PHP следующим образом:

$radio = isset($_POST['Eval CH']) ? $_POST['Eval CH'] : $_POST['Eval ELL'];

Но у вас действительно есть 3 условия:

 $_POST['Eval CH'] $_POST['Eval ELL'] None selcted 

Так что действительно ваша стенография не работает здесь, потому что вам нужно

 if elseif else 

Таким образом, вам действительно нужно более сложное управление, например:

 if (isset($_POST['Eval CH'])) { $to = 'blah@blah.com'; } elseif (isset($_POST['Eval ELL'])) { $to = 'sigh@sigh.com'; } else { $to = 'default@default.com'; } 

Надеюсь это поможет.

Ваши переключатели должны иметь общее имя и правильное значение. Они должны выглядеть так:

 <input type="radio" name="contact_option" value="Eval CH">Email Blah<br> <input type="radio" name="contact_option" value="Eval ELL">Email Sigh<br> 

Затем в вашем посте вы можете заменить строку следующим образом:

 $radio = isset($_POST['contact_option']) ? $_POST['contact_option'] : 'default'; 

Кроме того, if ($_POST['submit']) { } следует обойти весь этот раздел кода при публикации, а не просто проверять, являетесь ли вы человеком.

попробуйте изменить имя и значение в своем переключателе

 <input type="radio" name="to" value="Eval CH">Email Blah<br> <input type="radio" name="to" value="Eval ELL">Email Sigh<br>