php:用于发送带/复选框的电子邮件的正确逻辑

时间:2012-06-06 16:52:51

标签: checkbox php

我的网站上有一个简单的联系表格,可以发送电子邮件到不同的电子邮件地址(不同的实体办公室和电子邮件帐户)依赖于用户填写的复选框。

有两个复选框,一个是NMB,另一个是MB。

这是我想要做的: 如果选中一个复选框(NMB),则向addy1发送电子邮件 如果选中一个复选框(MB),请发送到电子邮件addy2 如果选中BOTH复选框(NMB和MB),则发送电子邮件至BOTH

到目前为止,我有这个,但我怀疑它不会起作用,或者会发送多封电子邮件....

    $office  = $_POST['office'];

    if  ($office == "NMB" ){
        $address = "adyy1@narf.com";
    }
    elseif  ($office == "MB" ){
        $address = "adyy2@narf.com";
    }
    elseif  ($office == "NMB"  && $office == "MB" ){
        $address = "addy1@narf.com,addy2@narf.com";
    }

我觉得我很亲密,但没有雪茄。在此先感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

这应该可行,但我不确定您的复选框的名称是什么。您可以使用相应的复选框名称替换cb1cb2

if  ($_POST['cb1'] == "NMB"  && $_POST['cb2']=='MB'){
    $address = "addy1@narf.com,addy2@narf.com";
}else if($_POST['cb1']=="NMB"){
    $address = "adyy1@narf.com";
}else if($_POST['cb2'] == "MB" ){
    $address = "adyy2@narf.com";
}

答案 1 :(得分:0)

您的复选框值将是您的value属性设置为的值,以及数组键,即您的name属性的值。

如果设置$ office = $ _POST ['复选框'],如果您的值为'NMB'和'MB',则全部设置。

答案 2 :(得分:0)

我会像这样使用HTML:

<form method=POST>
    <input type="checkbox" name="cb_NMB" id="cb_NMB" value=1 /><label for="cb_NMB">NMB</label>
    <input type="checkbox" name="cb_MB" id="cb_MB" value=1 /><label for="cb_MB">MB</label>
</form>

然后是PHP:

$addr = array();
if(isset($_POST['cb_NMB']))
    $addr[] = 'adyy1@narf.com';
if(isset($_POST['cb_MB']))
    $addr[] = 'adyy2@narf.com';

$message = '<b>Form Submitted</b><br />The form was submitted.';
foreach($addr as $a)
    mail($a,'Form Submission Notice',$message,"Content-type: text/html\r\n");

我使用isset是因为如果未选中该框,则不会设置$ _POST ['cb_NMB'],PHP将发出警告。