-1

我正在学习 PHP,并且有一个问题,我希望有一个简单的答案。我过去创建了基本表单,并在提交时向用户发送了相应的电子邮件。

这一次,我有 3 个复选框。根据选中的复选框,我需要向他们发送特定的电子邮件。

例如,如果他们希望接收文档 1 和 3,然后提交,电子邮件将向他们发送链接以下载这两个文档,依此类推。

我不介意它是否发送两封电子邮件,每个复选框选择一封。如果他们选择了他们希望接收的两份文档,他们会收到一封电子邮件以获取文档 1 的链接,另一封电子邮件用于获取文档 3。

我不确定我是否可以用 PHP 做到这一点。

4

4 回答 4

0

您需要做的是: 创建这样的复选框:

<input type="checkbox" name="sendDoc1" value="Selected" /> Send me Document 1

然后当 php 检查表单时,您可以使用 isset 并检查输入的内容

if(isset($_POST['sendDoc1']) &&
$_POST['sendDoc1'] == 'Selected')
{
  //Code to send email
}

您可以对每个文档重复此操作

于 2012-08-30T00:58:51.463 回答
0

使用您的文档复选框创建表单

<form method="post" action="test.php">
    Document 1: <input type="checkbox" name="document[]" value="document1" /><br />
    Document 2: <input type="checkbox" name="document[]" value="document2" /><br />
    Document 3: <input type="checkbox" name="document[]" value="document3" /><br />
    <br />
    <input type="hidden" name="send" value="1" />
    <input type="submit" value="Send" />
</form>

和一个 php 脚本来处理它

<?php
    if(isset($_POST) && ($_POST['send'] == 1)){

        $documents = array(
                        'document1' => 'http://www.example.com/document1.doc',
                        'document2' => 'http://www.example.com/document2.doc',
                        'document3' => 'http://www.example.com/document3.doc'
                    );

        $to      = 'nobody@example.com';
        $subject = 'the subject';
        $message = "hello\n\n";

        if(isset($_POST['document']) && count($_POST['document']) > 0){
            foreach($_POST['document'] as $doc){
                if(isset($documents[$doc])){
                    $message .= "Here is ".$documents[$doc]."\n";
                }
            }
        }


        $headers = 'From: webmaster@example.com' . "\r\n" .
            'Reply-To: webmaster@example.com' . "\r\n" .
            'X-Mailer: PHP/' . phpversion();

        mail($to, $subject, $message, $headers);
    }
?>

我想你明白了。

于 2012-08-30T01:01:38.307 回答
0
// create an array with the checkboxes so you can later easily expand it
// the indexes of the array are the fieldnames of the checkboxes
$checkboxes = array(
    'checkbox1' => 'http://example.com/somelink',
    'checkbox2' => 'http://example.com/somelink2',
    'checkbox3' => 'http://example.com/somelink3',
);

// generate mail body based on checked checkboxes
$mailContents = 'Your links:';
foreach($checkboxes as $name => $link) {
    if (isset($_POST[$name])) {
        $mailContents.= $link . "\n";
    }
}   

$mailContents现在您可以将包含在其中的链接作为字符串邮寄。

于 2012-08-30T00:56:29.877 回答
0

为每个复选框设置一个值,然后使用 POST 或 GET 方法发送三个复选框的值,然后执行以下操作:

if(check1 == "value"){
   //send email 1
}
if(check2 == "value"){
   //send email 2
}
if(check3 == "value"){
   //send email 3
}
于 2012-08-30T00:56:40.073 回答