使用复选框在PHP中发送电子邮件

时间:2014-09-30 08:28:26

标签: php mysql sql

如何从来自数据库的电子邮件发送电子邮件?但是,当单击复选框时,允许用户勾选一个复选框,说明发送给所有人。我如何将这些电子邮件存储在复选框中,以及如何将它们传递到邮件功能

<?php   
    $query="SELECT emails FROM users";
    $result=mysqli_query($db,$query);
    while($email=mysqli_fetch_assoc($result)){
        $email=$email['student_email'];
    }
?>
    <input type ="checkbox " name="$email[]" value="" />

我如何在复选框中使用此$ email,以便将所有电子邮件存储在那里?或者有不同的方法来执行此操作吗?  谢谢你们

4 个答案:

答案 0 :(得分:0)

while($email=mysqli_fetch_assoc($result)){
  $email=$email['student_email'];
  echo '<input type ="checkbox " name="$email" />';
}

然后将表单提交到一个页面,该页面会预告帖子值并邮寄所有电子邮件

答案 1 :(得分:0)

我只是将您的代码规范化并添加了所需的功能:

<?php
$query  = "SELECT emails FROM users";
$result = mysqli_query($db, $query);

while ($email = mysqli_fetch_assoc($result)) {
    echo '<input type="checkbox" name="mails[]" value="' . $email['student_email'] . '" />', PHP_EOL;
}

提交后:

<?php
foreach ($_REQUEST['mails'] as $studentMail) {
    echo $studentMail . '<br>', PHP_EOL;
}

<强>更新

我很想念你的问题。

如果您想向所有用户发送邮件,您根本不会收到邮件:

<input type="checkbox" name="send-to-all" value="yes">

然后提交后:

<?php
if (isset($_REQUEST['send-to-all']) && $_REQUEST['send-to-all'] == 'yes') {
    $query  = "SELECT emails FROM users";
    $result = mysqli_query($db,$query);
    while ($email = mysqli_fetch_assoc($result)) {
        // send email here or gather array to send a single mail to all
    }
}

如果你想加入群组,我会这样做:

<input type="hidden" name="groups" value="<?php echo json_encode($groups); ?>" />

答案 2 :(得分:0)

你可以这样做:

<?php
    $result = mysqli_query($db, 'SELECT id, student_email FROM users');
    if(isset($_POST['submit'])){
        while($row = mysqli_fetch_array($result)){
            var_dump($_POST['email-' . $row['id']]);
            if($_POST['email-' . $row['id']]){
                //Send
            }else{
                //Not send
            }
        }
    }
?>
<form method="post">
    <?php while($row = mysqli_fetch_array($result)):?>
    <input type="checkbox" name="email-<?=$row['id']?>" value="" />
    <?php endwhile;?>
    <input type="submit" name="submit" />
</form>

答案 3 :(得分:0)

正如我所见,您希望通过一个复选框发送电子邮件。首先,不要忘记将输入包装到<form id="..." method="..." action="...">...</form>标签组中。您不必将返回的mysql结果作为名称属性传递给输入,因为如果您选中该复选框,然后提交表单,则必须执行以下操作:发送电子邮件。所以我只会将输入的名称设置为&#34; send&#34;。之后你可以检查你的PHP代码:

<?php
  //I assume, that you used post method
  if($_POST['send']){
    foreach($email as $mail){
      mail($mail, $subject, $msg);
    }
  }
?>

我希望它可以帮到你。