Не хочу плодить тему. Заголовок соответствует проблеме. Есть форма, нужно отправить значение. Форма: Код (Text): <label class="fs-field-label fs-anim-upper" for="q4" data-info="Цветовая палитра">Выберите цвет, который вам импонирует</label> <select class="cs-select cs-skin-boxes fs-anim-lower"> <option name="q4" value="#D4A017" data-class="color-D4A017">#D4A017</option> <option name="q4" value="#FF0000" data-class="color-FF0000">#FF0000</option> <option name="q4" value="#00FFFF" data-class="color-00FFFF">#00FFFF</option> <option name="q4" value="#0000FF" data-class="color-0000FF">#0000FF</option> <option name="q4" value="#0000A0" data-class="color-0000A0">#0000A0</option> </select> </li> Код в обработчике: Код (Text): and !isset($_POST['q4']) and !empty($_POST['q5'])){ $q1 = trim(strip_tags($_POST['q1'])); $q2 = trim(strip_tags($_POST['q2'])); $q3 = trim(strip_tags($_POST['q3'])); $q4 = trim(strip_tags($_POST['q4'])); Нужно чтобы отправило значение "value" на почту. Сейчас же на почту приходит ответ с пустым значением. Пробовал присваивать каждому уникальный id, тип, ситуация ровно та же. Заранее спасибо!
Есть форма, нужно отправить значение. Форма: <label class="fs-field-label fs-anim-upper" for="q4" data-info="Цветовая палитра">Выберите цвет, который вам импонирует</label> <select class="cs-select cs-skin-boxes fs-anim-lower"> <option name="q4" value="#D4A017" data-class="color-D4A017">#D4A017</option> <option name="q4" value="#FF0000" data-class="color-FF0000">#FF0000</option> <option name="q4" value="#00FFFF" data-class="color-00FFFF">#00FFFF</option> <option name="q4" value="#0000FF" data-class="color-0000FF">#0000FF</option> <option name="q4" value="#0000A0" data-class="color-0000A0">#0000A0</option> </select> </li> Код обработки: and !isset($_POST['q4']) and !empty($_POST['q5'])){ $q1 = trim(strip_tags($_POST['q1'])); $q2 = trim(strip_tags($_POST['q2'])); $q3 = trim(strip_tags($_POST['q3'])); $q4 = trim(strip_tags($_POST['q4'])); Нужно чтобы отправило значение "value". Сейчас же на почту приходит ответ с пустым значением. Пробовал присваивать каждому уникальный id, тип, ситуация ровно та же. Чувствую что в коде обработки косяк. Заранее спасибо!
Посмотри по тегу select и option, они у тебя с ошибкой, у select должен быть атрибут name, а у option атрибут value. https://webref.ru/html/select https://webref.ru/html/option Код оформляй как HTML и PHP, кнопка </> в редакторе.
Name дописал перебирая варианты. Понятное дело что это неправильно. Форма срабатывает только в таком вариант. Но значение value постоянно остается пустым. Код (Text): <select class="cs-select cs-skin-boxes clearfix fs-anim-lower" name="q4"> <option value="#D4A017" data-class="color-D4A017">#D4A017</option> Вот что в send.php прописал Код (Text): if(!empty($_POST['q1']) and !empty($_POST['q2']) and !empty($_POST['q3']) and !isset($_POST['q4']) and !empty($_POST['q5'])){ $q1 = trim(strip_tags($_POST['q1'])); $q2 = trim(strip_tags($_POST['q2'])); $q3 = trim(strip_tags($_POST['q3'])); $q4= ($_POST['q4']); $q5 = trim(strip_tags($_POST['q5'])); Собственно то что приходит на почту.
Просто каждую строчку перепроверь, идёт ли выполнение скрипта так как тебе нужно debug http://phpfaq.ru/debug https://netbeans.org/kb/docs/php/debugging_ru.html https://php.ru/forum/threads/howto-...i-po-shagam-i-s-kartinkami.58974/#post-474550
PHP: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <form method="post" action="index.php"> <label class="fs-field-label fs-anim-upper" for="g" data-info="Цветовая палитра">Выберите цвет, который вам импонирует</label> <select id="g" name="g" class="cs-select cs-skin-boxes fs-anim-lower"> <option value="#D4A017" data-class="color-D4A017">#D4A017</option> <option value="#FF0000" data-class="color-FF0000">#FF0000</option> <option value="#00FFFF" data-class="color-00FFFF">#00FFFF</option> <option value="#0000FF" data-class="color-0000FF">#0000FF</option> <option value="#0000A0" data-class="color-0000A0">#0000A0</option> </select> <input type="submit"> </form> <?php if(!empty($_POST['g'])){ echo $_POST['g']; } else { echo 'Форма пуста.'; } ?> </body> </html>
Значение value не приходит, если <select id="q4" name="q4" Другой момент. Код (Text): При and !empty($_POST['q4']) форма не работает, ровно так же , если здесь указать Код (Text): $q4= trim(strip_tags($_POST['q4'])); Этот блок что-то вроде "checkbox", на сколько я читал, срабатывает только так Код (Text): and !isset($_POST['q4'])
Код (Text): <!doctype html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Обратная связь</title> </head> <body> <?php $back = "<p><a href=\"javascript: history.back()\">Вернуться назад</a></p>"; if(!empty($_POST['q1']) // имя and !empty($_POST['q2']) // вывод email and !empty($_POST['q3']) // вывод переключателя "radio" and !isset($_POST['q4']) // нужно вывести значение value and !empty($_POST['q5'])){ // текстовое поле $q1 = trim(strip_tags($_POST['q1'])); // значение приходит $q2 = trim(strip_tags($_POST['q2'])); // значение приходит $q3 = trim(strip_tags($_POST['q3'])); // значение приходит $q4= ($_POST['q4']); // Приходит пустое значение $q5 = trim(strip_tags($_POST['q5'])); mail('name@example.com', 'Письмо с сайта example.com', 'Вам написал: '.$q1.'<br/>Email: '.$q2.'<br/>Форма: '.$q3.'<br/>Цвет: '.$q4.'<br/>Пожелание: '.$q5,"Content-type:text/html;charset=utf-8"); echo "Ваше сообщение успешно отправлено!<br> Вы получите ответ в ближайшее время<br> $back"; exit; } else { echo "Для отправки сообщения заполните все поля! $back"; exit; } ?> </body> </html>
Всё, решение нашлось! Говорил же, что беда в php... Код (Text): if(!empty($_POST['q1']) and !empty($_POST['q2']) and !empty($_POST['q3']) and !empty($_POST['q4']) and !empty($_POST['q5'])){ $q1 = trim(strip_tags($_POST['q1'])); $q2 = trim(strip_tags($_POST['q2'])); $q3 = trim(strip_tags($_POST['q3'])); $q4 = trim(strip_tags($_POST['q4'])); $q5 = trim(strip_tags($_POST['q5']));
А ты когда селект переименовывал ты переименовал вместе с ним ключ при получении значения из массива $_POST? Я выложил рабочий код отправки и получения значения селекта, потестил прежде чем выложить.