0

私が使用しているメールフォームがあります。新しい使用法では、2 つのチェックボックスを追加しました。チェックボックスに基づいて異なるアドレスにメールを送信できるようにしたいと考えています。例: 「ボックス 1 が xx へのメールをチェックした場合、ボックス 2 が xx へのメールをチェックした場合、そうでなければ両方にメールを送信した場合。メールに使用するコードは次のとおりです。

<?

/************************
* Variables you can change
*************************/

$mailto = "";
$cc = "";
$bcc = "";
$subject = "contact";
$vname = "Enquiry";


/************************
* do not modify anything below unless you know PHP/HTML/XHTML
*************************/
/* my trial adjustment for check boxes
*/


$email = $_POST['email'];

function validateEmail($email)
{
   if(eregi('^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z]{2,4}(\.[a-zA-Z]{2,3})?(\.[a-zA-Z]{2,3})?$', $email))
      return true;
   else
      return false;
}


if((strlen($_POST['name']) < 1 ) || (strlen($email) < 1 ) || (strlen($_POST['message']) < 1 ) || validateEmail($email) == FALSE){
    $emailerror .= '';

    if(strlen($_POST['name']) < 1 ){
        $emailerror .= '<li>Enter name</li>';
    }

    if(strlen($email) < 1 ){
        $emailerror .= '<li>Enter email</li>';
    }

    if(validateEmail($email) == FALSE) {
        $emailerror .= '<li>Enter valid email</li>';
    }

    if(strlen($_POST['message']) < 1 ){
        $emailerror .= '<li>Enter message</li>';
    }

} else {

    $emailerror .= "Your email has been sent successfully";



    // NOW SEND THE ENQUIRY

    $timestamp = date("F j, Y, g:ia");

    $messageproper ="\n\n" .
        "Name: " .
        ucwords($_POST['name']) .
        "\n" .
        "Email: " .
        ucwords($email) .
        "\n" .
        "Telephone Contact: " .
        ucwords($_POST['tel']) .
        "\n" .
        "Company: " .
        ucwords($_POST['company']) .
        "\n" .
        "Comments: " .
        $_POST['message'] .
        "\n" .
        "\n\n" ;

        $messageproper = trim(stripslashes($messageproper));
        mail($mailto, $subject, $messageproper, "From: \"$vname\" <".$_POST['e_mail'].">\nReply-To: \"".ucwords($_POST['first_name'])."\" <".$_POST['e_mail'].">\nX-Mailer: PHP/" . phpversion() );

}
?>

<div id='emailerror'>
    <ul>
        <? echo $emailerror; ?>
    </ul>
</div>

チェックボックスのコード:

   <label>MailPersonA</label>
    <input type="checkbox" name="A" value="checkbox" id="A" />
   <label>MailPersonB</label>
      <input type="checkbox" name="B" value="checkbox" id="B" />

どんな助けでも大歓迎です。

4

2 に答える 2

2

あなたはおそらくもっとうまくいくでしょう:

   <label>MailPersonA</label>
    <input type="checkbox" name="emailadd[]" value="email1@example.com" id="A" />
   <label>MailPersonB</label>
      <input type="checkbox" name="emailadd[]" value="email2@example.com" id="B" />

そして処理中:

if($_POST['emailadd']) {
    foreach($_POST['emailadd'] as $email) {
         $mailto.= $email . ',';
    }

$mailto= trim($mailto,',');

ここで行ったようにフォームにメールを直接配置するのではなく、フォームの値に基づいてバックエンドにメールを追加することをお勧めします。例のために単純化しただけです。

于 2012-11-01T02:35:28.800 に答える
0

あなたはおそらくしたいでしょう:

  • チェックボックスの代わりにラジオ入力を使用して、正確に1つが選択されるようにします
  • ラジオに同じ名前を付ける
  • それらに異なる値を与える

だからあなたのHTMLは

<label>MailPersonA</label>
<input type="radio" name="toaddress" value="person1@wherever.com" id="A" />
<label>MailPersonB</label>
<input type="radio" name="toaddress" value="person2@wherever.com" id="B" />

$_POST['toaddress']送信先のメールアドレスが含まれるようになりました。

于 2012-11-01T02:40:14.057 に答える