我有一个基于数据库中的信息填充的HTML表,并希望在表的底部有一个按钮,当单击该按钮时,会打开一个电子邮件客户端(ala和一个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标记,例如</p>
等。这使我相信即使在WordPress编辑器的非可视模式下,格式仍在应用中。我该如何解决这个问题?
还要考虑我不能将脚本放在我的HTML中。
编辑2
好的,所以这是表格的代码。我在一个Formidable Pro(一个Wordpress表格插件)中使用它,所以[数字]对应一个字段。
<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]字段被替换为其中保存的实际值,并且对于我的数据库中的每个条目重复<tbody>
和</tbody>
之间的内容。
另外,我意识到我的脚本已经列出了“orgTable”,但我将其更改为正确的“orgTbl”。另外,我认为value
会给我单元格中的值,而且显然是下拉菜单,我将其更改为innerHTML
。但是仍然没有运气。
答案 0 :(得分: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());
});
修改:我忘记添加 mailto:,以使操作在href属性中像mailto链接一样。