【问题标题】:Populating an Email with multiple addresses使用多个地址填充电子邮件
【发布时间】:2014-08-09 18:19:28
【问题描述】:

我有一个根据数据库中的信息填充的 HTML 表,并且希望在表的底部有一个按钮,单击该按钮会打开一个电子邮件客户端(也就是一个 HTML mailto:) 并具有TO: 字段中的多个地址基于表格中的某些单元格。

我有按钮的 HTML。

<input type="button" id="emailAll" value="Email All">

我开始编写这段小代码来收集单击按钮时的电子邮件地址:

$("emailAll").click(function($){
  var emailCell = 4;
  var length = document.getElementById("orgTable").rows.length;
  var emailArray = [];
  for (i = 0; i < length; i++) {
   emailArray.push(document.getElementById("orgTable").rows[i].cells[emailCell].value);
  }
});

但是,我不确定从这里去哪里。 我读过在mailto 中有多个电子邮件地址是不好的形式(?),所以我不确定我应该从这里去哪里?此外,我什至不确定我目前拥有的代码是否可以工作(例如,我很确定“emailAll”部分是错误的?),所以任何更正将不胜感激! =]

另外,很抱歉,如果之前有人问过这个问题。

谢谢!

编辑 所以这里有更多细节,因为不幸的是我现在的答案不起作用。

这是在 wordpress 网站上使用的,代码需要从帖子内部调用。当我尝试使用我拥有的代码时,会在源代码中添加一堆 HTML 标签,例如&lt;/p&gt; 等。这让我相信即使在 WordPress 编辑器的非可视模式下,格式仍在应用中。我将如何解决这个问题?

还要考虑到我不能将脚本放在我的 HTML 中。

编辑 2

好的,这是表格的代码。我在 Formidable Pro(一个 Wordpress 表单插件)中使用它,所以 [number] 对应一个字段。

<div class = "fullWidth">
    <table id = "orgTbl">
    <thead id = "orgheader">
        <tr>
            <th class="orgheadercell" colspan = "5">[get-team]</th> 
        </tr>
        <tr>
            <th> ... </th> 
            <th> ... </th> 
            <th> ... </th> 
            <th> ... </th> 
            <th> Email Address </th> 
        </tr>
    </thead>
    <tbody id="orgbody">
        <tr class = "orgbodyrow">
           <td class="orgbodycell">[249]</td>
           <td class="orgbodycell">[250]</td>
           <td class="orgbodycell">[322]</td>
           <td class="orgbodycell">[336]</td>
           <td class="orgbodycell">[264]</td>
        </tr>
    </tbody>
        <tr>
        <td class="orgheadercell" colspan = "5">
            <form id="getEmails" action="" method="GET">
                <input type="submit" id = "emailAll" value="Email All" />
            </form>
            <script src = "/wp-includes/js/create-email.js" type="text/javascript">
            </script>
        </td> 
        </tr>
     </table>
</div>

因此,您正在查看的是一个正在进行的工作,在准备就绪之前仍需要对其进行一些清理。但无论如何,正如我所说,[number] 字段被替换为其中保存的实际值,并且 &lt;tbody&gt;&lt;/tbody&gt; 之间的内容对于我数据库中的每个条目都会重复。

另外,我意识到我的脚本列出了“orgTable”,但我将其更改为正确的“orgTbl”。此外,因为我认为value 会给我单元格中的值,而且它显然是用于下拉菜单,所以我将其更改为innerHTML。不过还是没有运气。

【问题讨论】:

    标签: javascript html forms email


    【解决方案1】:

    将您的按钮放在这样的表单中:

     <form action="" method="GET">
            <input type="submit" value="Email All" />
        </form>
    

    对于javascript,onload,把这个:

    $("emailAll").click(function($){
      var emailCell = 4;
      var length = document.getElementById("orgTable").rows.length;
      var emailArray = [];
      for (i = 0; i < length; i++) {
       emailArray.push(document.getElementById("orgTable").rows[i].cells[emailCell].value);
      }
    
      // once you got your array of email properly from your table, try this
       $('form').get(0).setAttribute('action', "mailto:"+emailArray.toString()); 
    
    });
    

    编辑:我忘记添加 ma​​ilto: 以使操作像 href 属性中的 mailto 链接。

    【讨论】:

    • 那么,一旦我点击按钮,我应该如何处理字符串?因为据我了解,具有“GET”方法的表单只会将其粘贴到 URL 中,并且(我在这里猜测)当我想要它的行为类似于"mailto:" HTML 中的链接?
    • 我编辑了我的帖子,我忘了添加 mailto: 到 action 属性。在这种情况下,它只是一个普通的 mailto: 链接,它会打开你的电子邮件程序,将使用 emailArray 选择的列表作为收件人,用逗号分隔。试试看,你会看到的。我试过了,它对我有用。
    • 嗯,这对我不起作用。我将用更多细节更新我原来的问题,以便深入了解!
    • 我对 Wordpress 不是很熟悉,但尝试打印您的数组 emailArray。您是否可以毫无问题地从 HTML 表格中获取电子邮件列表?因为如果里面什么都没有,代码将无法工作。您可以在存储电子邮件列表的地方发布您的表格的 HTML 代码吗?
    • 我将使用表格代码更新原始问题并解释其工作原理。
    猜你喜欢
    • 2023-03-07
    • 1970-01-01
    • 2014-12-26
    • 1970-01-01
    • 2016-02-02
    • 2018-08-21
    • 1970-01-01
    • 2020-02-24
    • 2023-01-17
    相关资源
    最近更新 更多