我有一個數據數組,看起來像這樣:如何將數組輸出到包含連接數據的電子郵件中?
01 | organization_1 | email_A | publication_A1 | pubID_A1
02 | organization_1 | email_A | publication_A2 | pubID_A2
03 | organization_1 | email_A | publication_A3 | pubID_A3
04 | organization_2 | email_B | publication_B1 | pubID_B1
05 | organization_2 | email_B | publication_B2 | pubID_B2
06 | organization_3 | email_C | publication_C1 | pubID_C1
07 | organization_4 | email_D | publication_D1 | pubID_D1
08 | organization_4 | email_D | publication_D2 | pubID_D2
陣列的結構是這樣的:
array('org' => organization_x, 'email' => email_x, 'title' => publication_x, 'pub_id' => pubID_x).
我需要做的就是輸出這個數組,使其顯示爲個人電子郵件消息與每個提交按鈕後。查看此頁面的人將查看顯示的消息,並且他或她可以選擇單擊「提交」以將特定內容發送給相應的電子郵件。這裏是我們需要創建的初始顯示:
<!-- Message #1 -->
<form>
<input type="hidden" name="pub_ids" value="pubID_A1;pubID_A2;pubID_A3">
<input type="hidden" name="recipient" value="email_A">
<input type="hidden" name="organization" value="organization_1">
<!-- start on-screen text display -->
To: email_A
Your account contains the following publication titles:
* publication_A1
* publication_A2
* publication_A3
You can edit these publications after logging into our system. Your email
address, email_A, serves as your username.
Thanks!
<!-- end on-screen text display -->
<input type="submit" name="submit" value="submit">
</form>
<!-- Message #2 -->
<form>
<input type="hidden" name="pub_ids" value="pubID_B1;pubID_B2">
<input type="hidden" name="recipient" value="email_B">
<input type="hidden" name="organization" value="organization_2">
<!-- start on-screen text display -->
To: email_B
Your account contains the following publications:
* publication_B1
* publication_B2
You can edit these publications after logging into our system. Your
email address, email_B, serves as your username.
Thanks!
<!-- end on-screen text display -->
<input type="submit" name="submit" value="submit">
</form>
...並且直到數組中的所有項目都被處理完畢。
我已經試了一下以下代碼的版本太久了。這個想法是遍歷每個項目,將pub_id和標題數據連接成文本字符串,以便通過表單傳遞或根據需要顯示在屏幕上。當劇本命中一個新的組織名稱時,它應該將所有片段放在一起,然後開始下一個組織的電子郵件。
$current_org = '';
$pub_ids = '';
$titles = '';
foreach ($array AS $value)
{
$pub_ids .= $value['pub_id'] . ';';
$titles .= '* ' . $value['title'] . '<br />';
if ($current_org != $value['org'])
{
echo '<form>';
echo '<input type="hidden" name="pub_ids" value="' . $pub_ids . '">';
echo '<input type="hidden" name="recipient" value="' . $value['email'] . '">';
echo '<input type="hidden" name="organization" value="' . $value['org'] . '">';
echo 'To: ' . $value['email'];
echo '<br /><br />';
echo 'Your account contains the following publication titles:';
echo '<blockquote>';
echo $titles;
echo '</blockquote>';
echo 'You can edit these publications after logging into our system. Your email address, ' . $value['email'] . ', serves as your username.';
echo '<br /><br />';
echo 'Thanks!';
echo '<input type="submit" name="submit" value="submit">';
echo '</form>';
echo '<br /><br />';
$pub_ids = '';
$titles = '';
$current_org = $value['org'];
}
}
但是實際上,我得到的是,
例如,看起來像這樣pub_ids:
月1日消息:<輸入類型= 「隱藏」 名稱= 「pub_ids」 值= 「pubID_A1」 >
第二消息:< INPUT TYPE = 「隱藏」 名稱= 「pub_ids」 值= 「pubID_A1; pubID_A2」 >
第三消息:< INPUT TYPE = 「隱藏」 名稱= 「pub_ids」 VA略= 「pubID_A1; pubID_A2; pubID_A3」 >
第四消息:< INPUT TYPE = 「隱藏」 名稱= 「pub_ids」 值= 「pubID_A1; pubID_A2; pubID_A3; pubID_B1」 >
第五消息:<輸入類型= 「隱藏」 名稱= 「pub_ids」 值= 「pubID_A1; pubID_A2; pubID_A3; pubID_B1; pubID_B2」 >
編輯:增加$ pub_ids = '' 和$標題= '' 每當腳本啓動了。這現在反映在foreach()附近的上面的代碼中。
因此,現在的問題似乎是第一個有多個發佈的組織只列出一個發佈。然後下一個組織獲得最後一個組織的出版物以及他們自己的出版物。然後其餘的被拋棄。與第一個if()語句有關嗎?由於$ current_org從NULL開始,第一個循環永遠不會被設置爲$ value ['org']。我無法弄清楚如何解決這個問題。在哪裏/如何檢查組織價值是否發生了變化?
對此問題的任何深入瞭解都非常感謝!
嗨和謝謝埃米利奧 - 但沒有奏效。按照您的建議更改代碼只會爲每條消息提供一個發佈。有一些組織擁有多個出版物。這個改變意味着你只有一個。任何其他想法? – user1286755
我試過的一件事是清除$ pub_ids和$標題,只要腳本重新開始。這現在反映在我在foreach()附近的原始文章中。修復了原始問題,其中的項目只是添加到pub_ids和titles串聯的字符串中。但現在在某些時候輸出不正確。它看起來像是擁有多個出版物的第一個組織,只列出了一個出版物。然後下一個組織獲得最後一個組織的出版物以及他們自己的出版物。然後其餘的被拋棄? – user1286755