Search code examples
phpformsconditional-statementsradio-button

Specific email conditional on Radio Button selected in Form


Thank you for all the info here, but I seem to be missing something to make it send to each particular email address.

Basis for this code came from thread: Send PHP Form to Different Emails Based on Radio Buttons

<form name="contact-form" method="post" action="contact.php">
  <div class="form_details">
    <input type="text" id="field_name" name="sender_name" class="text" value="name">
    <input type="text" id="field_email" name="sender_email" class="text" value="email" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Email';}">                                     
    <input type="text" id="field_subject" name="sender_subject" class="text" value="subject" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Subject';}">                                     
    <textarea id="field_message" name="sender_message" value="Message" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Message';}"></textarea>
    <div class="clearfix"> </div>
    <div class="sub-button">
      <div style="float:left">
        <input type="radio" name="department" value="archery"> Archery
        <input type="radio" name="department" value="firearms"> Firearms
        <input type="radio" name="department" value="general"> General Inquiry
      </div>
    <div class="g-recaptcha" data-sitekey="6LeydxcTAAAAACBd4beoLDgtu0LIqzTWOJnvfsH-"></div>
      <input type="submit" name="send_message" value="Submit">
    </div>
  </div>
</form>

<?php
  // Assigning data from the $_POST array to variables     
  $name = $_POST['sender_name'];     
  $mail_from = $_POST['sender_email'];     
  $phone = $_POST['sender_phone'];
  $sender_subject = $_POST['sender_subject'];          
  $message = $_POST['sender_message'];     

  $radio = isset($_POST['archery']) ? $_POST['firearms'] : $_POST['general'];
  if (isset($_POST['archery'])) {
    $department = '[email protected]';
  } elseif (isset($_POST['firearms'])) {
    $department = '[email protected]';
  } elseif (isset($_POST['general'])) {
    $department = '[email protected]';
  } else {
    $department = '[email protected]';
  }

  // Construct email subject     
  $subject = 'SC Website Message ';     

  // Construct email body     
  $body_message .= 'From: ' . $name . "\r\n";     
  $body_message .= 'E-mail: ' . $mail_from . "\r\n";
  $body_message .= 'Subject: ' . $sender_subject . "\r\n";     
  $body_message .= 'Message: ' . $message;     

  // Construct email headers     
  $headers = 'From: ' . $mail_from . "\r\n";     
  $headers .= 'Reply-To: ' . $mail_from . "\r\n";     

  $mail_sent = mail($mail_to, $subject, $body_message, $headers);     
  if ($mail_sent == true){ ?>         
    <script language="javascript" type="text/javascript">         
      alert('Thank you for your message, we will be in contact shortly.');         
      window.location = 'contact.html';         
    </script>     
  <?php } else { ?>     
    <script language="javascript" type="text/javascript">         
      alert('Message not sent. Please, notify the site administrator     [email protected]');         
      window.location = 'contact.html';     
    </script>     
  <?php     
  } 
?>

Solution

  • EDIT:

    HTML

    <form name="contact-form" method="POST" action="contact.php">
    <div class="form_details">
    <input type="text" id="field_name" name="sender_name" class="text" placeholder="name"/>
    <input type="text" id="field_email" name="sender_email" class="text" value="email" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Email';}"/>                                     
    <input type="text" id="field_subject" name="sender_subject" class="text" value="subject" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Subject';}"/>                                     
    <textarea id="field_message" name="sender_message" placeholder="Message" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Message';}"></textarea>
    <div class="clearfix"> </div>
    <div class="sub-button">
    <div style="float:left">
    <input type="radio" name="department" value="archery"/> Archery
    <input type="radio" name="department" value="firearms"/> Firearms
    <input type="radio" name="department" value="general"/> General Inquiry
    </div>
    <div class="g-recaptcha" data-sitekey="6LeydxcTAAAAACBd4beoLDgtu0LIqzTWOJnvfsH-"></div>
    <input type="submit" name="send_message" value="Submit"/>
    </div>
    </div>
    </form>
    

    PHP

        <?php
        if (isset($_POST["send_message"])) {
        $name = $_POST["sender_name"];
        $mail_from = $_POST["sender_email"];
        //$phone = $_POST["sender_phone"];
        $sender_subject = $_POST["sender_subject"];
        $message = $_POST["sender_message"];
    
        $radio = $_POST["department"];
        if ($radio == "archery") {
            $department = "[email protected]";
        } elseif ($radio == "firearms") {
            $department = "[email protected]";
        } elseif ($radio == "general") {
            $department = "[email protected]";
        } else {
            $department = "[email protected]";
        }
    
        // Construct email subject     
        $subject = 'SC Website Message ';     
    
        // Construct email body   
        $body_message = "";  
        $body_message .= 'From: ' . $name . "\r\n";     
        $body_message .= 'E-mail: ' . $mail_from . "\r\n";
        $body_message .= 'Subject: ' . $sender_subject . "\r\n";     
        $body_message .= 'Message: ' . $message;     
    
        // Construct email headers     
        $headers = 'From: ' . $mail_from . "\r\n";     
        $headers .= 'Reply-To: ' . $mail_from . "\r\n";     
        // As flow mail sent to department
        $mail_to=$department;
        $mail_sent = mail($mail_to, $subject, $body_message, $headers);
    
        if ($mail_sent == true){ ?>         
        <script language="javascript" type="text/javascript">         
        alert('Thank you for your message, we will be in contact shortly.');         
        window.location = 't1.php';         
        </script>     
        <?php } else { ?>     
        <script language="javascript" type="text/javascript">         
        alert('Message not sent. Please, notify the site administrator     [email protected]');         
        window.location = 't1.php';     
        </script>     
       <?php     
        }
        }
        ?>