2014-01-17 39 views
0

我使用基於位置ID的名稱動態生成輸入字段的表單中創建了一個表。現在我想將其發佈到使用PHPMailer將信息發送給電子郵件的另一個文件。我從這裏的其他帖子瞭解到使用數組發佈,例如name="name[]",但現在我堅持如何將每個項目添加到PHPMailer電子郵件的主體。使用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

如果他們數組,然後用[的foreach()](http://php.net/foreach)遍歷它們... –

回答

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 
+0

這個作品真的很好,但我有多個在每個tr的每個名字中都有td。我會更新我的問題來說明。 – Mike

0
$names= array_values($_POST['name']); 

foreach($names as $name) { 
    $htmlBody= $htmlBody . $name; 

}