@dgallyamshin

Как отправить radio и checkbox на почту с помощью ajax?

Я сверстал и запрограммировал калькулятор с разными услугами, у каждой услуги свои данные для отправки. Если честно, еще никогда с php не сталкивался, да и ajax почти не знаю.

Суть такая, три услуги в виде табов, человек выбирает услугу, далее вводит и выбирает данные, чтоб узнать стоимость. Вот пример одной и услуг, но наткнулся на проблему. В одной из услуг есть такие данные, и я не знаю, как их отправить. Как отправить label выбранной радиокнопки или чекбокса?

$('#my_send3').click(function() {

            if ($('#workSpace').prop('checked')) {


                $.post (
                'post.php', // адрес обработчика

                {
                    'Имя: ':
                    $('#call-name').val(),
                    'Телефон: ':
                    $('#call-tel').val(),
                    'Услуга':
                    'Рабочий проект',
                    'Тип объекта: ':
                    $('#workProject .calculator-select__choose').text(),
                    'Площадь: ':
                    $('#scale-budget_input').val().replace(' кв. м', '') + ' кв. м'
                },

                function(msg) {
                    $('.call-me__wrap').hide()
                    $('.call-me__complete').show()
                    }

                )
            
            return false;
            } else if ($('#designVisual').prop('checked')) {


                $.post (
                'post.php', // адрес обработчика

                {
                    'Имя: ':
                    $('#call-name').val(),
                    'Телефон: ':
                    $('#call-tel').val(),
                    'Услуга':
                    'Дизайн и визуализация',
                    'Тип объекта: ':
                    $('#visualAndDesign .calculator-select__choose').text(),
                    'Площадь: ':
                    $('#scale-building_input').val().replace(' кв. м', '') + ' кв. м'
                },

                function(msg) {
                    $('.call-me__wrap').hide()
                    $('.call-me__complete').show()
                    }

                )



            } else if ($('#building').prop('checked')) {

                $.post (
                'post.php', // адрес обработчика

                {
                    'Имя: ':
                    $('#call-name').val(),
                    'Телефон: ':
                    $('#call-tel').val(),
                    'Услуга':
                    'Строительство',
                    'Тип объекта: ':
                    $('#building .calculator-select__choose').text(),
                    'Площадь: ':
                    $('#scale-building_input').val().replace(' кв. м', '') + ' кв. м',
                    'Количество комнат':
                    $('.room-field').val(),
                    'Высота потолка':
                    $('.height-ceiling').val()
                },

                function(msg) {
                    $('.call-me__wrap').hide()
                    $('.call-me__complete').show()
                    }

                )

            }

        })

602e0f21f0cc4970598687.jpeg602e0f2f2a9f3046837217.jpeg
  • Вопрос задан
  • 105 просмотров
Решения вопроса 1
revenger
@revenger
49.5
Как-то сложно у вас.
Трижды один и тот же код.
Не проще ли три формы сделать и дергать одну функцию отправки?
Примеры
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
hrabry
@hrabry
const services = [
     	{name: 'Дизайн и визуализация', active: $('#designVisual').prop('checked')},
        {name: 'Рабочий проект', active: $('#workSpace').prop('checked')},
        {name: 'Строительство', active: true}
];

const activeService = services.find(service => service.active == true);

const msg = {
    'Имя: ':  $('#call-name').val(),
    'Телефон: ':  $('#call-tel').val(),
};

msg['Услуга: '] = activeService.name;

$.post('post.php', msg, function() {
   $('.call-me__wrap').hide()
   $('.call-me__complete').show()
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 08:04
1 руб./за проект
22 нояб. 2024, в 06:06
1500 руб./в час
22 нояб. 2024, в 06:04
1 руб./за проект