【问题标题】:Send email based on drop down selection根据下拉选择发送电子邮件
【发布时间】:2012-09-02 10:10:23
【问题描述】:

我在一个表中有一个包含三个选项值的列表。 “已批准”、“待定”和“未批准”。当用户选择一个选项时,我希望向该人发送不同的电子邮件。我在同一行(下拉框旁边)有另一个字段名称“电子邮件地址”。我在想我可以捕获单元格中的特定电子邮件地址并根据选择发送电子邮件。这是否可以通过对每个选项值使用 If else 语句然后将特定的 mailto 发送到表中的电子邮件地址来实现?或者最好有一个提交按钮,一旦选择了选项就发送电子邮件?

【问题讨论】:

  • 你试过的,提供一些代码

标签: php html forms


【解决方案1】:

一旦选择了选项,最好有一个提交按钮。这使人们有机会在为他们采取行动之前确定他们的行动。例如,他们可能不小心点击了错误的下拉选项,并想要更改它。最好让下拉菜单作为做出选择的动作,而将提交按钮作为发送电子邮件的动作。这也避免了用户混淆(让用户感到困惑,保证他们再也不想使用您的应用程序)。

但无论如何,如果您想在选择下拉值时发送电子邮件,则需要在 JavaScript 中进行。这是因为您正在处理前端控件,而执行这样的操作并不是选择 HTML 元素的典型行为。

我将向您展示如何在 jQuery 中使用 AJAX 来实现,因为它简单明了 (http://jquery.com)

<script type="text/javascript">
    $('#email-dropdown').on('change', function() {
        $.ajax({
            url: <some_file_that_handles_emailing>,
            type: 'post',
            dataType: 'json',
            data: { 'selected': $(this).val() },
            success: function(response) {
                alert(response.msg);
            }
        });
     );
</script>
<select id="email-dropdown">
    <option value="accepted">Accepted</option>
    <option value="pending">Pending</option>
    <option value="disapproved">Disapproved</option>
</select>

一旦值更改,就可以发送电子邮件。另外,我没有指定默认值,因为如果您有默认选择,则该值不会出现“更改”事件,除非他单击另一个值,否则用户将无法触发电子邮件首先,然后改回来(从而触发两封电子邮件)。

如果你想要一个提交按钮:

<form id="email-form" action="<some_file_that_handles_emailing>">
    <select id="email-dropdown" name="email-dropdown">
        <option value="accepted">Accepted</option>
        <option value="pending">Pending</option>
        <option value="disapproved">Disapproved</option>
    </select>
    <input type="submit" value="Send Email" />
</form>

就是这样!

【讨论】:

  • 非常感谢您的解决方案。我将如何发布从数据库填充的表中的字段?这样我就可以处理字段数据,然后发送到电子邮件地址。例如:";回声 $row['Orderno'];然后在我的电子邮件正文(表单处理脚本)中使用 Orderno,我的表单以
    开头,后跟表格。谢谢
  • @m1243:听起来如果你想要一个非常详细的答案,你应该把它作为一个单独的问题发布。
【解决方案2】:

我会推荐一个提交按钮。
如果用户选择了错误的选项怎么办?然后您将发送两封电子邮件!

另外,如果您没有提交按钮,则必须调用 AJAX 请求才能与 PHP 通信。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-30
    • 2020-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多