如何获取一组下拉列表值并使用 PHP 通过电子邮件发送


How to get a set of dropdown list values and email it using PHP?

我有三个下拉列表 - 一组。

演示页面可以在这里检查:http://goo.gl/VqtTyM

  1. 第一个是"目的地"
  2. 第二个是针对选定的客人对"景点或"的兴趣"目的地"中的活动
  3. 第三个是"目的地"中的"可用景点/活动"

由以下代码创建:

<div class="multi-field">
    <select class="text-one" name="destination[]">
        <option selected value="base">Please Select</option>
        <option value="colombo">Colombo</option>
        <option value="kandy">Kandy</option>
        <option value="anuradhapura">Anuradhapura</option>
    </select>
    <br />
    <select class="text-two" name="attraction_or_activity[]">
        <option value="attraction_or_activity">Select the attractions or activities</option>
        <option value="attraction">Attraction</option>
        <option value="activity">Activity</option>
    </select>
    <select class="populated_attr_or_activity" name="attraction_or_activity_selected[]">
        <option value="available_attr_act">Available attractions / activities</option>
        <!-- Here, available options will be populated -->
    </select>
</div>

在客人选择他们想要的选项并提交表格后,我应该按照以下顺序将这些选择发送到我的电子邮件中。

目的地(第一个下拉列表中的选定值):景点/活动(第二个下拉列表中的选定值

):选定的可用景点/活动(第三个下拉列表中的选定值)

这组下拉列表可以通过单击添加更多(添加目标)按钮更动态地添加。所以现在我使用以下代码来获取我的电子邮件。

<?php
if(empty($errors)){ // if the errors array is empty then send the mail 
    $headers  = 'MIME-Version: 1.0' . "'r'n"; // adding support for HTML type email
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "'r'n"; // adding support for HTML type email
    //print $tourist_name;
    $msg = '';
    $i = 1;
    foreach ($_POST['destination'] as $key => $val) {
        $msg .= ' <strong>' . $i++ . '. Destination : </strong>' . $val . ', <strong>Attraction/Activty : </strong>' . $_POST['attraction_or_activity'][$key] . '<br />';
    };
    $msg .= 'Name : ' .$tourist_name.'<br/>';
    $msg .= 'E-mail : ' . $tourist_email.'<br/>';
    $msg .= 'Country : ' .$tourist_country.'<br/>';
    mail("myemail@gmail.com","Custom Tour Package",$msg, $headers);
}
?>

正如您在上面看到的,我仅使用"目的地"和"attraction_or_activity"数组。现在我的电子邮件正文如下所示:


1. 目的地 : 科伦坡, 景点/活动 : 景点

2. 目的地 : 科伦坡, 景点/活动 : 活动

3. 目的地 : 康提, 景点/活动 : 景点

姓名 : 客人姓名

邮箱 : guestEmail@gmail.com

国家 : 客人的国家


但是我期望如何收到电子邮件如下:

1. 目的地 : 科伦坡, 景点/活动 : 景点 所选景点/活动 : 恒河拉玛雅

2. 目的地 : 科伦坡, 景点/活动 : 活动 所选景点/活动 : 城市观光

3.目的地 : 康提, 景点/活动 : 景点 所选景点/活动 : 寺庙牙

姓名 : 客人姓名

邮箱 : guestEmail@gmail.com

国家 : 客人的国家


我必须如何修改我的代码才能按照上面的预期获取电子邮件?

如何将第三个下拉列表值包含在循环foreach

你只需要像attraction_or_activity一样取attraction_or_activity_selected的值。尝试将foreach中的代码更改为以下内容:

foreach ($_POST['destination'] as $key => $val) {
        $msg .= ' <strong>' . $i++ . '. Destination : </strong>' . $val
                . ', <strong>Attraction/Activty : </strong>' . $_POST['attraction_or_activity'][$key]
                . ', <strong>Selected attraction/activity  : </strong>' . $_POST['attraction_or_activity_selected'][$key]
                . '<br />';
}