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

时间:2016-01-21 06:21:39

标签: php email multidimensional-array foreach

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

可在此处检查演示页:http://goo.gl/VqtTyM

  1. 第一个是“目的地”
  2. 第二个是选择客人对“吸引力”或“吸引力”的兴趣 活动'在'目的地'
  3. 第三个是“目的地”中的“可用景点/活动”
  4. 通过以下代码创建:

    <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>
    

    客人根据需要选择了该选项并提交表单后,我应该按照以下顺序将这些选择收到我的电子邮件中。

    目的地(第一个下拉列表中的选定值):吸引力/活动(第二个下拉列表中的选定值):所选的可用吸引力/活动< / strong>(第3个下拉列表中的选定值)

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

    <?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);
    }
    ?>
    

    如上所示,我只使用'destination'和'attraction_or_activity'数组。 现在我的电子邮件正文如下:

    1。目的地:科伦坡,吸引力/活动:吸引力

    2。目的地:科伦坡,吸引力/活动:活动

    第3。目的地:康提,吸引力/活动:吸引力

    姓名:来宾姓名

    电子邮件:guestEmail@gmail.com

    国家:嘉宾国家

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

    1。目的地:科伦坡,景点/活动:吸引力精选景点/活动: Ganga Ramaya

    2。目的地:科伦坡,吸引力/活动:活动所选景点/活动:城市之旅

    第3。目的地:康提,景点/活动:吸引力所选景点/活动: Temple Tooth

    姓名:来宾姓名

    电子邮件:guestEmail@gmail.com

    国家:嘉宾国家

    我如何修改我的代码以获取上述预期的电子邮件?

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

1 个答案:

答案 0 :(得分:1)

您只需要像attraction_or_activity_selected那样获取attraction_or_activity的值。尝试将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 />';

}