У меня есть три раскрывающихся списка – набор.
Демо-страница может быть проверена здесь: http://goo.gl/VqtTyM
созданный по следующему коду:
<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>
После того, как гость выбрал вариант по своему желанию и отправит форму, я должен получить эти варианты в своем сообщении электронной почты, как указано в следующем порядке.
destination (выбранное значение в первом раскрывающемся списке): Attraction / Activity (выбранное значение во втором выпадающем списке): выбранный доступный атрибут / активность (выбранное значение в третьем выпадающем списке)
Этот набор раскрывающегося списка можно добавить более динамично, нажав кнопку « Добавить больше» (« Добавить место назначения» ). Поэтому на данный момент я использую следующий код для получения моей электронной почты.
<?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); } ?>
Как вы видите выше, я использую только массив назначения и array_or_activity. теперь мой почтовый ящик выглядит так:
1. Пункт назначения: colombo, Привлечение / Деятельность: привлечение
2. Назначение: colombo, Attraction / Activity: activity
3. Пункт назначения: kandy, Привлечение / Деятельность: привлечение
Имя: имя гостя
E-mail: guestEmail@gmail.com
Страна: гостевая страна
Но как я ожидаю получить электронное письмо, как показано ниже:
1. Пункт назначения: colombo, Привлечение / Деятельность: привлечение Выбранная достопримечательность / деятельность: Ganga Ramaya
2. Пункт назначения: colombo, Привлечение / Деятельность: деятельность Выбранная достопримечательность / деятельность: обзорная экскурсия по городу
3. Пункт назначения: kandy, Привлечение / Деятельность: привлечение Выбранная достопримечательность / деятельность: Храм Зуба
Имя: имя гостя
E-mail: guestEmail@gmail.com
Страна: гостевая страна
как мне нужно изменить свой код, чтобы получить электронную почту, как я ожидал выше?
как включить третье значение списка выпадающих списков в цикл foreach
?
Вам просто нужно принимать значения 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 />'; }