Получение данных от Input Checkbox или Radio

Тема в разделе "Как сделать...", создана пользователем erik87, 22 окт 2013.

Статус темы:
Закрыта.
  1. erik87

    erik87

    Регистр.:
    30 сен 2008
    Сообщения:
    206
    Симпатии:
    10
    У меня такой код:
    HTML:
    <input type="checkbox" name="2plus1"> Закажите 2 и получите 1 бесплатно!<br />
    <input type="checkbox" name="3plus2"> Закажите 3 и получите 2 бесплатно!<br />
    <input type="checkbox" name="one"> Закажите одну.
    Код для отправки данных:
    PHP:
    $field_order_variant1 $_POST['2plus1'];
    $field_order_variant2 $_POST['3plus2'];
    $field_order_variant3 $_POST['one'];
    $body_message .= '2 + 1 бесплатно: '.$field_order_variant1."\n"."\n";
    $body_message .= '3 + 2 бесплатно: '.$field_order_variant2."\n"."\n";
    $body_message .= 'Одна штука: '.$field_order_variant3."\n"."\n";
    Приходит в заявке:
    Т.е., рядом над выбранным заказчиком вариантом стоит "on". Мне надо, чтобы заказчик мог выбрать только один вариант и только этот выбранный им вариант приходил в заявке, например:
     
    Последнее редактирование: 22 окт 2013
  2. Stas-P

    Stas-P

    Регистр.:
    7 сен 2013
    Сообщения:
    165
    Симпатии:
    126
    Если тебе надо, чтобы заказчик мог выбрать только один вариант, тогда вместо checkbox используй radio
    То есть

    <input type="radio" name="Общее имя" value="Закажите 2 и получите 1 бесплатно!" >Закажите 2 и получите 1 бесплатно!
    <input type="radio" name="Общее имя" value="Закажите 3 и получите 2 бесплатно!" >Закажите 3 и получите 2 бесплатно!
    <input type="radio" name="Общее имя" value="Закажите одну" >Закажите одну.

    Хотя в значении value может быть любое значение, которое будет передано скрипту.

    В твоем варианте, скрипту передается значение только выбранного checkbox, а так как другие остались пустыми, значит данных переменных не существует.
    Так что далее тебе надо было проверять на существование данной переменной и если она есть(выбрана), тогда дописывать в $body_message.

    Надеюсь что понятно объяснил =)
     
    Шумадан нравится это.
  3. erik87

    erik87

    Регистр.:
    30 сен 2008
    Сообщения:
    206
    Симпатии:
    10
    Спасибо за ответ, но при смене типа input checkbox на radio все равно можно выбрать несколько вариантов. Можно конкретней, что нужно дописывать в $body_message ?
     
  4. Stas-P

    Stas-P

    Регистр.:
    7 сен 2013
    Сообщения:
    165
    Симпатии:
    126
    Смотри...
    к примеру вставляешь на страницу следующий код:
    <input type="radio" name="order" value="Закажите 2 и получите 1 бесплатно!" >Закажите 2 и получите 1 бесплатно!
    <input type="radio" name="order" value="Закажите 3 и получите 2 бесплатно!" >Закажите 3 и получите 2 бесплатно!
    <input type="radio" name="order" value="Закажите одну" >Закажите одну.

    У тебя на странице появляется три радио с одинаковым name, теперь пользователь может выбрать только одно значение из трех.
    После того, как сработает форма, скрипт получает переменную $_POST['order'] (то есть наше имя в name).
    Данная переменная будет содержать одно из трех значений, вернее даже то значение которое выбрал пользователь.

    Дальше ты можешь это вставить в
    $field_order_variant = $_POST['order'];
    ...
    $body_message .= $field_order_variant1; (В переменную $body_message попадет значение из value выбранного элемента, так что ты в value можешь вписать что тебе нужно, хоть и "2 + 1 бесплатно").
     
    Шумадан и erik87 нравится это.
Статус темы:
Закрыта.