通过while循环向mysql数据库中填充数据的html表中的行发送电子邮件

时间:2012-09-08 22:36:39

标签: php mysql while-loop html-table

我有一个HTML表,其中填充了使用while()循环的MySQL数据库中的数据。该数据库具有以下结构:

+++++++++++++++++++++
| id | name | email |
+++++++++++++++++++++

我想这样做是因为用户可以向选定的一组用户(行)发送电子邮件,我正在考虑以下解决方案之一:

  1. 每行显示“发送邀请电子邮件”或
  2. 的按钮
  3. 复选框选择我要发送邀请电子邮件的复选框和提交表单的“提交”按钮。
  4. 我不确定如何将数据放入要处理的表单中。

2 个答案:

答案 0 :(得分:0)

启动一个表单,提交围绕<table>.的PHP声音 在每一行中,都有一个如下所示的复选框:

<input type="checkbox" name="emails[]" value="<?php echo $row['email']; ?>" />

底部有一个提交按钮(在表单内)。在PHP页面上:

<?php
$emails = $_POST['emails'];
foreach ($emails as $email) {
   ###Logic to send your HTML e-mail
}
?>

答案 1 :(得分:0)

首先,让PHP为每个复选框分配一个唯一的ID和值,以了解选中的复选框和电子邮件地址。例如:

<input type="checkbox" name="5" value="email@foo.com">email@foo.com

另外,使用<input type="hidden">存储复选框的总数:

<input type="hidden" name="totalCheckboxes" value="20">

在目标页面(<form action="...">中指定的页面)上,从隐藏的<input>获取复选框的总数,并在For循环中获取:

  • 阅读并存储每个复选框的电子邮件;
  • 将电子邮件发送到存储的地址。

最终代码应如下所示:

表单页

<form method="POST" action="target.php">
<table><tbody>
  <tr>
    <td><input type="checkbox" name="1" value="foo@bar.com"></td>
    <td>foo@bar.com</td>
  </tr>
  <tr>
    <td><input type="checkbox" name="2" value="herp@derp.com"></td>
    <td>herp@derp.com</td>
  </tr>
</tbody></table>
<input type="hidden" name="totalCheckboxes" value="2">
</form>

目标网页

<?php
$total=$_POST['totalCheckboxes'];
for ($k=1; $k!=$total; $k++) {
   if ($_POST[$k]) {
      // Email
   }
}
?>