За последние 24 часа нас посетили 20169 программистов и 1078 роботов. Сейчас ищут 670 программистов ...

Отправка option из формы select по почте.

Тема в разделе "PHP для новичков", создана пользователем Devileye, 28 авг 2016.

  1. Devileye

    Devileye Новичок

    С нами с:
    28 авг 2016
    Сообщения:
    6
    Симпатии:
    0
    Не хочу плодить тему. Заголовок соответствует проблеме.
    Есть форма, нужно отправить значение.
    Форма:
    Код (Text):
    1. <label class="fs-field-label fs-anim-upper" for="q4" data-info="Цветовая палитра">Выберите цвет, который вам импонирует</label>
    2.                             <select class="cs-select cs-skin-boxes fs-anim-lower">
    3.                                 <option name="q4" value="#D4A017" data-class="color-D4A017">#D4A017</option>
    4.                                 <option name="q4" value="#FF0000" data-class="color-FF0000">#FF0000</option>
    5.                                 <option name="q4" value="#00FFFF" data-class="color-00FFFF">#00FFFF</option>
    6.                                 <option name="q4" value="#0000FF" data-class="color-0000FF">#0000FF</option>
    7.                                 <option name="q4" value="#0000A0" data-class="color-0000A0">#0000A0</option>
    8.                             </select>
    9.                         </li>
    Код в обработчике:
    Код (Text):
    1. and !isset($_POST['q4'])
    2.     and !empty($_POST['q5'])){
    3.         $q1 = trim(strip_tags($_POST['q1']));
    4.         $q2 = trim(strip_tags($_POST['q2']));
    5.         $q3 = trim(strip_tags($_POST['q3']));
    6.         $q4 = trim(strip_tags($_POST['q4']));
    Нужно чтобы отправило значение "value" на почту.
    Сейчас же на почту приходит ответ с пустым значением. Пробовал присваивать каждому уникальный id, тип, ситуация ровно та же.

    Заранее спасибо!
     
    #1 Devileye, 28 авг 2016
    Последнее редактирование: 28 авг 2016
  2. Devileye

    Devileye Новичок

    С нами с:
    28 авг 2016
    Сообщения:
    6
    Симпатии:
    0
    Есть форма, нужно отправить значение.
    Форма:

    1. <label class="fs-field-label fs-anim-upper" for="q4" data-info="Цветовая палитра">Выберите цвет, который вам импонирует</label>
    2. <select class="cs-select cs-skin-boxes fs-anim-lower">
    3. <option name="q4" value="#D4A017" data-class="color-D4A017">#D4A017</option>
    4. <option name="q4" value="#FF0000" data-class="color-FF0000">#FF0000</option>
    5. <option name="q4" value="#00FFFF" data-class="color-00FFFF">#00FFFF</option>
    6. <option name="q4" value="#0000FF" data-class="color-0000FF">#0000FF</option>
    7. <option name="q4" value="#0000A0" data-class="color-0000A0">#0000A0</option>
    8. </select>
    9. </li>
    Код обработки:

    1. and !isset($_POST['q4'])
    2. and !empty($_POST['q5'])){
    3. $q1 = trim(strip_tags($_POST['q1']));
    4. $q2 = trim(strip_tags($_POST['q2']));
    5. $q3 = trim(strip_tags($_POST['q3']));
    6. $q4 = trim(strip_tags($_POST['q4']));
    Нужно чтобы отправило значение "value".
    Сейчас же на почту приходит ответ с пустым значением. Пробовал присваивать каждому уникальный id, тип, ситуация ровно та же. Чувствую что в коде обработки косяк.

    Заранее спасибо!
     
  3. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    Посмотри по тегу select и option, они у тебя с ошибкой, у select должен быть атрибут name, а у option атрибут value.
    https://webref.ru/html/select
    https://webref.ru/html/option

    Код оформляй как HTML и PHP, кнопка </> в редакторе.
     
  4. Devileye

    Devileye Новичок

    С нами с:
    28 авг 2016
    Сообщения:
    6
    Симпатии:
    0
    Name дописал перебирая варианты. Понятное дело что это неправильно.
    Форма срабатывает только в таком вариант. Но значение value постоянно остается пустым.
    Код (Text):
    1. <select class="cs-select cs-skin-boxes clearfix fs-anim-lower" name="q4">
    2. <option value="#D4A017" data-class="color-D4A017">#D4A017</option>
    Вот что в send.php прописал

    Код (Text):
    1. if(!empty($_POST['q1'])
    2.     and !empty($_POST['q2'])
    3.     and !empty($_POST['q3'])
    4.     and !isset($_POST['q4'])
    5.     and !empty($_POST['q5'])){
    6.         $q1 = trim(strip_tags($_POST['q1']));
    7.         $q2 = trim(strip_tags($_POST['q2']));
    8.         $q3 = trim(strip_tags($_POST['q3']));
    9.         $q4= ($_POST['q4']);
    10.         $q5 = trim(strip_tags($_POST['q5']));
    Собственно то что приходит на почту.
     

    Вложения:

  5. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    Devileye нравится это.
  6. bikerlex

    bikerlex Активный пользователь

    С нами с:
    2 дек 2014
    Сообщения:
    344
    Симпатии:
    40
    o_O
    PHP:
    1. <!doctype html>
    2. <html lang="en">
    3. <head>
    4.     <meta charset="UTF-8">
    5.     <title>Document</title>
    6. </head>
    7. <body>
    8. <form method="post" action="index.php">
    9.     <label class="fs-field-label fs-anim-upper" for="g" data-info="Цветовая палитра">Выберите цвет, который вам импонирует</label>
    10.     <select id="g" name="g" class="cs-select cs-skin-boxes fs-anim-lower">
    11.         <option value="#D4A017" data-class="color-D4A017">#D4A017</option>
    12.         <option value="#FF0000" data-class="color-FF0000">#FF0000</option>
    13.         <option value="#00FFFF" data-class="color-00FFFF">#00FFFF</option>
    14.         <option value="#0000FF" data-class="color-0000FF">#0000FF</option>
    15.         <option value="#0000A0" data-class="color-0000A0">#0000A0</option>
    16.     </select>
    17.     <input type="submit">
    18. </form>
    19. <?php
    20. if(!empty($_POST['g'])){
    21.     echo $_POST['g'];
    22. } else {
    23.     echo 'Форма пуста.';
    24. }
    25. ?>
    26. </body>
    27. </html>
     
  7. Devileye

    Devileye Новичок

    С нами с:
    28 авг 2016
    Сообщения:
    6
    Симпатии:
    0
    Значение value не приходит, если <select id="q4" name="q4"
    Другой момент.
    Код (Text):
    1. При and !empty($_POST['q4'])
    форма не работает, ровно так же , если здесь указать
    Код (Text):
    1. $q4= trim(strip_tags($_POST['q4']));
    Этот блок что-то вроде "checkbox", на сколько я читал, срабатывает только так
    Код (Text):
    1. and !isset($_POST['q4'])
     
    #7 Devileye, 28 авг 2016
    Последнее редактирование: 28 авг 2016
  8. Devileye

    Devileye Новичок

    С нами с:
    28 авг 2016
    Сообщения:
    6
    Симпатии:
    0
    Код (Text):
    1.  
    2. <!doctype html>
    3. <html>
    4. <head>
    5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    6. <title>Обратная связь</title>
    7. </head>
    8.  
    9. <body>
    10. <?php
    11.     $back = "<p><a href=\"javascript: history.back()\">Вернуться назад</a></p>";
    12.  
    13. if(!empty($_POST['q1']) // имя
    14.     and !empty($_POST['q2']) // вывод email
    15.     and !empty($_POST['q3']) // вывод переключателя "radio"
    16.     and !isset($_POST['q4']) // нужно вывести значение  value
    17.     and !empty($_POST['q5'])){ // текстовое поле
    18.         $q1 = trim(strip_tags($_POST['q1'])); // значение приходит
    19.         $q2 = trim(strip_tags($_POST['q2'])); // значение приходит
    20.         $q3 = trim(strip_tags($_POST['q3'])); // значение приходит
    21.         $q4= ($_POST['q4']); // Приходит пустое значение
    22.         $q5 = trim(strip_tags($_POST['q5']));
    23.  
    24. mail('name@example.com', 'Письмо с сайта example.com', 'Вам написал: '.$q1.'<br/>Email: '.$q2.'<br/>Форма: '.$q3.'<br/>Цвет: '.$q4.'<br/>Пожелание: '.$q5,"Content-type:text/html;charset=utf-8");
    25.      
    26.         echo "Ваше сообщение успешно отправлено!<br> Вы получите ответ в ближайшее время<br> $back";
    27.      
    28.       exit;
    29.     }
    30.     else {
    31.         echo "Для отправки сообщения заполните все поля! $back";
    32.         exit;
    33.     }
    34. ?>
    35. </body>
    36. </html>
     
  9. Devileye

    Devileye Новичок

    С нами с:
    28 авг 2016
    Сообщения:
    6
    Симпатии:
    0
    Всё, решение нашлось! Говорил же, что беда в php...
    Код (Text):
    1. if(!empty($_POST['q1'])
    2.     and !empty($_POST['q2'])
    3.     and !empty($_POST['q3'])
    4.     and !empty($_POST['q4'])
    5.     and !empty($_POST['q5'])){
    6.   $q1 = trim(strip_tags($_POST['q1']));
    7.   $q2 = trim(strip_tags($_POST['q2']));
    8.   $q3 = trim(strip_tags($_POST['q3']));
    9.   $q4 = trim(strip_tags($_POST['q4']));
    10.   $q5 = trim(strip_tags($_POST['q5']));
    11.        
     
  10. bikerlex

    bikerlex Активный пользователь

    С нами с:
    2 дек 2014
    Сообщения:
    344
    Симпатии:
    40
    А ты когда селект переименовывал ты переименовал вместе с ним ключ при получении значения из массива $_POST? Я выложил рабочий код отправки и получения значения селекта, потестил прежде чем выложить.