我在表单中创建了一个表,该表可动态生成名称基于位置ID的输入字段。现在我想将其发布到使用PHPMailer通过电子邮件发送信息的其他文件中。我从这里的其他帖子中学到了使用数组发布,例如name="name[]"
,但现在我仍然坚持如何将每个项目添加到PHPMailer电子邮件的正文中。
以下是我表格中的表格:
<table class="coach_log">
<?php
$query = "SELECT location_id FROM users WHERE id = " . $_SESSION['user_id'];
$result = mysql_query($query, $connection);
if (!result) {
die("Database query failed: " . mysql_error());
}
while ($row = mysql_fetch_array($result)) {
$location_id = $row["location_id"];
$query = "SELECT first_name, last_name FROM users WHERE location_id = " . $location_id . " ORDER BY first_name";
$result = mysql_query($query, $connection);
if (!result) {
die("Database query failed: " . mysql_error());
}
while ($row = mysql_fetch_array($result)) {
$name = $row['first_name'] . " " . $row['last_name'];
echo ' <tr>
<td colspan="5" style="padding: 0; font-size: 20px; font-weight: 700;">' . $name . '</td>
</tr>
<input type="text" name="name[]" value="' . $name . '">';
}
}
?>
</table>
以下是我生成电子邮件的单独文件如何处理它的示例:
$name = $_POST['name'];
$htmlBody = "
<table>
<tr>
<td style=\"padding: 5px !important; text-align: left; line-height: 25px; font-family: sans-serif; font-size: 14px;\" bgcolor=\"#FFFFFF\">{$name}</td>
</tr>
</table>";
如何让$ htmlBody生成表单中创建的所有其他行?
使用foreach非常有效,但我在每个名称下都有多个输入需要像这样发送:
foreach ($names as $name) {
$htmlBody .= "
<tr>
<td>{$name}</td>
<td>{$today_actual}</td>
<td>{$today_goal}</td>
<td>{$month_actual}</td>
</tr>
他们都属于一起。但如果我对每一个做一个单独的foreach,我会以错误的顺序获取信息。有什么想法吗?
答案 0 :(得分:0)
// Make sure we're dealing with an array of names
$names = is_array($_POST['name']) ? $_POST['name'] : array($_POST['name']);
$htmlBody = "..."; // Header HTML
foreach ($names as $name) {
$htmlBody .= "<tr><td>$name</td></tr>";
}
$htmlBody .= "..."; // Footer HTML
答案 1 :(得分:0)
$names= array_values($_POST['name']);
foreach($names as $name) {
$htmlBody= $htmlBody . $name;
}