테스트 사이트 - 개발 중인 베타 버전입니다

폼메일+라디오버튼

fffff 6년 전 조회 4,908

라디오버튼을 포함한 폼메일 전송을 하고싶습니다.

트리플님이 올려주신 아래의 폼메일에서 라디오박스를 추가하였습니다.

https://sir.kr/g5_skin/20940?sfl=wr_subject%7C%7Cwr_content&stx=%ED%8F%BC%EB%A9%94%EC%9D%BC#c_28795">https://sir.kr/g5_skin/20940?sfl=wr_subject%7C%7Cwr_content&stx=%ED%8F%BC%EB%A9%94%EC%9D%BC#c_28795

 

formmail/js/contact.js

formmail/php/contact.php

파일에 텍스트박스 넣듯 값을 추가하였으나 보여지지가 않습니다.

 

 

formmail.php에서 

</p>

<p>                    <div class="checks">

                      <input type="radio" id="ex_rd" name="ex_rds" value="유"> 

                      <label for="ex_rd">유</label> 

                      <input type="radio" id="ex_rd2" name="ex_rds" value="무"> 

                      <label for="ex_rd2">무</label> 

                    </div>

 

contact.js에서

</p>

<p>    // @CONTACT FORM - TRANSLATE OR EDIT

    _subject_required        = 'Subject is Required!',

    _agree_name                = 'Agree is Required!',

    _email_name                = 'Name is Required!',

    _email_required            = 'Email is Required!',

    _phone_required            = 'Phone is Required!',

    _email_message            = 'Message is Required!',

    _email_location            = 'Location is Required!',

    _email_ex_rds            = 'Select is Required!',

    _email_all                = 'Please complete all fields!',

    _email_invalid            = 'Invalid Email!',

    _email_sent                = '<strong>메세지가 전달 되었습니다.</strong>';</p>

<p>

    /**    CONTACT FORM

    *************************************************** **/

    jQuery("#contact_submit").bind("click", function(e) {

        e.preventDefault();</p>

<p>        var agree             = jQuery("#agree").is(':checked'),                    // required

            contact_subject = jQuery("#contact_subject").val(),            // required

            contact_name     = jQuery("#contact_name").val(),            // required

            contact_email     = jQuery("#contact_email").val(),            // required

            contact_phone     = jQuery("#contact_phone").val(),            // required

            contact_location= jQuery("#contact_location").val(),            // required

            contact_ex_rds  = jQuery("#contact_ex_rds").val(),            // required

            contact_message = jQuery("#contact_message").val(),            // required

            _action            = jQuery("#contactForm").attr('action'),    // form action URL

            _method            = jQuery("#contactForm").attr('method'),    // form method

            _err            = false;                                    // status</p>

<p>        // Remove error tooltips

        //jQuery("#contactForm span.tooltip_error").remove();</p>

<p>        // Agree Check

        if(!agree) {

            jQuery("#alertErrResponse").empty().append(_agree_name);

            jQuery("#alertErr").show();

            alert('개인정보 수집 및 이용에 관한 동의해주세요.');

            return false;

        }</p>

<p>        // Name Check

        if(contact_name == '') {

            jQuery("#alertErrResponse").empty().append(_email_name);

            jQuery("#alertErr").show();</p>

<p>            return false;

        }</p>

<p>        // Email Check

        if(contact_email == '') {

            jQuery("#alertErrResponse").empty().append(_email_required);

            jQuery("#alertErr").show();

            return false;

        }</p>

<p>        // Phone Check

        if(contact_phone == '') {

            jQuery("#alertErrResponse").empty().append(_phone_required);

            jQuery("#alertErr").show();

            return false;

        }</p>

<p>        // Subject Check

        if(contact_subject == '') {

            jQuery("#alertErrResponse").empty().append(_subject_required);

            jQuery("#alertErr").show();

            return false;

        }

        

        // Subject Check

        if(contact_location == '') {

            jQuery("#alertErrResponse").empty().append(_location_required);

            jQuery("#alertErr").show();

            return false;

        }

        

        // Subject Check

        if(contact_ex_rds == '') {

            jQuery("#alertErrResponse").empty().append(_ex_rds_required);

            jQuery("#alertErr").show();

            return false;

        }</p>

<p>        // Comment Check

        if(contact_message == '') {

            jQuery("#alertErrResponse").empty().append(_email_message);

            jQuery("#alertErr").show();

            return false;

        }</p>

<p>

        // SEND MAIL VIA AJAX

        $.ajax({

            url:     _action,

            data:     {ajax:"true", action:'email_send', contact_name:contact_name, contact_email:contact_email, contact_phone:contact_phone, contact_location:contact_location, contact_ex_rds:contact_ex_rds, contact_message:contact_message},

            type:     _method,

            error:     function(XMLHttpRequest, textStatus, errorThrown) {</p>

<p>                alert('Server Internal Error'); // usualy on headers 404</p>

<p>            },</p>

<p>            success: function(data) {

                data = data.trim(); // remove output spaces</p>

<p>

                // PHP RETURN: Mandatory Fields

                if(data == '_required_') {

                    jQuery("#alertErrResponse").empty().append(_email_all);

                    jQuery("#alertErr").show();

                } else</p>

<p>                // PHP RETURN: INVALID EMAIL

                if(data == '_invalid_email_') {

                    jQuery("#alertErrResponse").empty().append(_email_invalid);

                    jQuery("#alertErr").show();

                } else</p>

<p>                // VALID EMAIL

                if(data == '_sent_ok_') {</p>

<p>                    // hide error warning if visible

                    jQuery("#alertErr").hide();</p>

<p>                    jQuery("#alertOkResponse").empty().append(_email_sent);

                    jQuery("#alertOk").show();</p>

<p>                    // reset form

                    jQuery("#contact_name, #contact_email, #contact_phone, #contact_location, #contact_ex_rds #contact_message").val('');</p>

<p>                } else {</p>

<p>                    // PHPMAILER ERROR

                    alert(data); </p>

<p>                }

            }

        });</p>

<p>    });</p>

<p>    /* ========================================================================

     * Bootstrap: alert.js v3.2.0

     * <a href="http://getbootstrap.com/javascript/#alerts" target="_blank" rel="noopener noreferrer">http://getbootstrap.com/javascript/#alerts</a>

     * ========================================================================

     * Copyright 2011-2014 Twitter, Inc.

     * Licensed under MIT (<a href="https://github.com/twbs/bootstrap/blob/master/LICENSE)" target="_blank" rel="noopener noreferrer">https://github.com/twbs/bootstrap/blob/master/LICENSE)</a>

     * ======================================================================== */</p>

<p>    +function ($) {

      'use strict';</p>

<p>      // ALERT CLASS DEFINITION

      // ======================</p>

<p>      var dismiss = '[data-dismiss="alert"]'

      var Alert   = function (el) {

        $(el).on('click', dismiss, this.close)

      }</p>

<p>      Alert.VERSION = '3.2.0'</p>

<p>      Alert.prototype.close = function (e) {

        var $this    = $(this)

        var selector = $this.attr('data-target')</p>

<p>        if (!selector) {

          selector = $this.attr('href')

          selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7

        }</p>

<p>        var $parent = $(selector)</p>

<p>        if (e) e.preventDefault()</p>

<p>        if (!$parent.length) {

          $parent = $this.hasClass('alert') ? $this : $this.parent()

        }</p>

<p>        $parent.trigger(e = $.Event('close.bs.alert'))</p>

<p>        if (e.isDefaultPrevented()) return</p>

<p>        $parent.removeClass('in')</p>

<p>        function removeElement() {

          // detach from parent, fire event then clean up data

          $parent.detach().trigger('closed.bs.alert').remove()

        }</p>

<p>        $.support.transition && $parent.hasClass('fade') ?

          $parent

            .one('bsTransitionEnd', removeElement)

            .emulateTransitionEnd(150) :

          removeElement()

      }</p>

<p>

      // ALERT PLUGIN DEFINITION

      // =======================</p>

<p>      function Plugin(option) {

        return this.each(function () {

          var $this = $(this)

          var data  = $this.data('bs.alert')</p>

<p>          if (!data) $this.data('bs.alert', (data = new Alert(this)))

          if (typeof option == 'string') data[option].call($this)

        })

      }</p>

<p>      var old = $.fn.alert</p>

<p>      $.fn.alert             = Plugin

      $.fn.alert.Constructor = Alert</p>

<p>

      // ALERT NO CONFLICT

      // =================</p>

<p>      $.fn.alert.noConflict = function () {

        $.fn.alert = old

        return this

      }</p>

<p>

      // ALERT DATA-API

      // ==============</p>

<p>      $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)</p>

<p>    }(jQuery);</p>

<p>

 

contact.php에서

</p>

<p>    // @CONTACT FORM - TRANSLATE OR EDIT

    _subject_required        = 'Subject is Required!',

    _agree_name                = 'Agree is Required!',

    _email_name                = 'Name is Required!',

    _email_required            = 'Email is Required!',

    _phone_required            = 'Phone is Required!',

    _email_message            = 'Message is Required!',

    _email_location            = 'Location is Required!',

    _email_ex_rds            = 'Select is Required!',

    _email_all                = 'Please complete all fields!',

    _email_invalid            = 'Invalid Email!',

    _email_sent                = '<strong>메세지가 전달 되었습니다.</strong>';</p>

<p>

    /**    CONTACT FORM

    *************************************************** **/

    jQuery("#contact_submit").bind("click", function(e) {

        e.preventDefault();</p>

<p>        var agree             = jQuery("#agree").is(':checked'),                    // required

            contact_subject = jQuery("#contact_subject").val(),            // required

            contact_name     = jQuery("#contact_name").val(),            // required

            contact_email     = jQuery("#contact_email").val(),            // required

            contact_phone     = jQuery("#contact_phone").val(),            // required

            contact_location= jQuery("#contact_location").val(),            // required

            contact_ex_rds  = jQuery("#contact_ex_rds").val(),            // required

            contact_message = jQuery("#contact_message").val(),            // required

            _action            = jQuery("#contactForm").attr('action'),    // form action URL

            _method            = jQuery("#contactForm").attr('method'),    // form method

            _err            = false;                                    // status</p>

<p>        // Remove error tooltips

        //jQuery("#contactForm span.tooltip_error").remove();</p>

<p>        // Agree Check

        if(!agree) {

            jQuery("#alertErrResponse").empty().append(_agree_name);

            jQuery("#alertErr").show();

            alert('개인정보 수집 및 이용에 관한 동의해주세요.');

            return false;

        }</p>

<p>        // Name Check

        if(contact_name == '') {

            jQuery("#alertErrResponse").empty().append(_email_name);

            jQuery("#alertErr").show();</p>

<p>            return false;

        }</p>

<p>        // Email Check

        if(contact_email == '') {

            jQuery("#alertErrResponse").empty().append(_email_required);

            jQuery("#alertErr").show();

            return false;

        }</p>

<p>        // Phone Check

        if(contact_phone == '') {

            jQuery("#alertErrResponse").empty().append(_phone_required);

            jQuery("#alertErr").show();

            return false;

        }</p>

<p>        // Subject Check

        if(contact_subject == '') {

            jQuery("#alertErrResponse").empty().append(_subject_required);

            jQuery("#alertErr").show();

            return false;

        }

        

        // Subject Check

        if(contact_location == '') {

            jQuery("#alertErrResponse").empty().append(_location_required);

            jQuery("#alertErr").show();

            return false;

        }

        

        // Subject Check

        if(contact_ex_rds == '') {

            jQuery("#alertErrResponse").empty().append(_ex_rds_required);

            jQuery("#alertErr").show();

            return false;

        }</p>

<p>        // Comment Check

        if(contact_message == '') {

            jQuery("#alertErrResponse").empty().append(_email_message);

            jQuery("#alertErr").show();

            return false;

        }</p>

<p>

        // SEND MAIL VIA AJAX

        $.ajax({

            url:     _action,

            data:     {ajax:"true", action:'email_send', contact_name:contact_name, contact_email:contact_email, contact_phone:contact_phone, contact_location:contact_location, contact_ex_rds:contact_ex_rds, contact_message:contact_message},

            type:     _method,

            error:     function(XMLHttpRequest, textStatus, errorThrown) {</p>

<p>                alert('Server Internal Error'); // usualy on headers 404</p>

<p>            },</p>

<p>            success: function(data) {

                data = data.trim(); // remove output spaces</p>

<p>

                // PHP RETURN: Mandatory Fields

                if(data == '_required_') {

                    jQuery("#alertErrResponse").empty().append(_email_all);

                    jQuery("#alertErr").show();

                } else</p>

<p>                // PHP RETURN: INVALID EMAIL

                if(data == '_invalid_email_') {

                    jQuery("#alertErrResponse").empty().append(_email_invalid);

                    jQuery("#alertErr").show();

                } else</p>

<p>                // VALID EMAIL

                if(data == '_sent_ok_') {</p>

<p>                    // hide error warning if visible

                    jQuery("#alertErr").hide();</p>

<p>                    jQuery("#alertOkResponse").empty().append(_email_sent);

                    jQuery("#alertOk").show();</p>

<p>                    // reset form

                    jQuery("#contact_name, #contact_email, #contact_phone, #contact_location, #contact_ex_rds #contact_message").val('');</p>

<p>                } else {</p>

<p>                    // PHPMAILER ERROR

                    alert(data); </p>

<p>                }

            }

        });</p>

<p>    });</p>

<p>    /* ========================================================================

     * Bootstrap: alert.js v3.2.0

     * <a href="http://getbootstrap.com/javascript/#alerts" target="_blank" rel="noopener noreferrer">http://getbootstrap.com/javascript/#alerts</a>

     * ========================================================================

     * Copyright 2011-2014 Twitter, Inc.

     * Licensed under MIT (<a href="https://github.com/twbs/bootstrap/blob/master/LICENSE)" target="_blank" rel="noopener noreferrer">https://github.com/twbs/bootstrap/blob/master/LICENSE)</a>

     * ======================================================================== */</p>

<p>    +function ($) {

      'use strict';</p>

<p>      // ALERT CLASS DEFINITION

      // ======================</p>

<p>      var dismiss = '[data-dismiss="alert"]'

      var Alert   = function (el) {

        $(el).on('click', dismiss, this.close)

      }</p>

<p>      Alert.VERSION = '3.2.0'</p>

<p>      Alert.prototype.close = function (e) {

        var $this    = $(this)

        var selector = $this.attr('data-target')</p>

<p>        if (!selector) {

          selector = $this.attr('href')

          selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7

        }</p>

<p>        var $parent = $(selector)</p>

<p>        if (e) e.preventDefault()</p>

<p>        if (!$parent.length) {

          $parent = $this.hasClass('alert') ? $this : $this.parent()

        }</p>

<p>        $parent.trigger(e = $.Event('close.bs.alert'))</p>

<p>        if (e.isDefaultPrevented()) return</p>

<p>        $parent.removeClass('in')</p>

<p>        function removeElement() {

          // detach from parent, fire event then clean up data

          $parent.detach().trigger('closed.bs.alert').remove()

        }</p>

<p>        $.support.transition && $parent.hasClass('fade') ?

          $parent

            .one('bsTransitionEnd', removeElement)

            .emulateTransitionEnd(150) :

          removeElement()

      }</p>

<p>

      // ALERT PLUGIN DEFINITION

      // =======================</p>

<p>      function Plugin(option) {

        return this.each(function () {

          var $this = $(this)

          var data  = $this.data('bs.alert')</p>

<p>          if (!data) $this.data('bs.alert', (data = new Alert(this)))

          if (typeof option == 'string') data[option].call($this)

        })

      }</p>

<p>      var old = $.fn.alert</p>

<p>      $.fn.alert             = Plugin

      $.fn.alert.Constructor = Alert</p>

<p>

      // ALERT NO CONFLICT

      // =================</p>

<p>      $.fn.alert.noConflict = function () {

        $.fn.alert = old

        return this

      }</p>

<p>

      // ALERT DATA-API

      // ==============</p>

<p>      $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)</p>

<p>    }(jQuery);</p>

<p>

를 추가했습니다.

 

선택된 값만 가져오려면 어떻게 추가해야할까요?

코딩을 전혀 못하다보니 바꾸는것도 어렵네요 ㅠㅠ

고수님들 고견부탁드립니다.

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

id="ex_rd" name="ex_rds" => id="ex_rd" name="ex_rd"

<b>유무:</b>  {$array['contact_ex_rd']}  

=>  <b>유무:</b>  {$array['ex_rd']}  

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

f
fffff
6년 전
감사합니다. 해결하였습니다.

js 파일 내 요청되는 값에

[code]

contact_ex_rds = jQuery("#ex_rd").is(':checked')?jQuery("#ex_rd").val():jQuery("#ex_rd2").val(),

[/code]

체크되는 값을 불러오도록 하였습니다.

이걸 제대로 설명할줄을 몰라서 엄청 헤맷네요.

답변 감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

재가 질문을 잘못 이해햇을수 있습니다.

 

ex_rd 라디오로 전달 해서 받고 싶은 것이라면?

 

-> 그 폼메일의 결과를 실행하는 곳에서 ex_rd을 인식시켜서 실행 하셔야 지요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

f
fffff
6년 전
네. 메일 받는 부분에도 추가를 했습니다만 수신된 메일에는 유무값만 빈칸으로 들어옵니다. 아마도 선택된 값을 받지 못하는것이 아닌가 싶습니다.
컴맹인지라 확실한 문제의 위치를 찝어 말씀드리지 못해서 질문을 잘 이해하기 힘드실 수 있습니다. ㅠㅠ

라디오버튼을 추가시 텍스트필드와 다른 추가 설정 부분이 있나요?

contact.php 파일 내 메일 수신 부분에 삽입한 부분입니다.
[code]
$array['contact_ex_rd'] = isset($_REQUEST['contact_ex_rd']) ? strip_tags(trim($_REQUEST['contact_location'])) : '';
[/code]
[code]
$mail_body = "
<b>Date:</b> {$date} <br>
<b>Name:</b> {$array['contact_name']} <br>
<b>Email:</b> {$array['contact_email']} <br>
{$PHONE}
<b>유무:</b> {$array['contact_ex_rd']} <br>
<b>location:</b> {$array['contact_location']} <br>
<b>Message:</b> {$array['contact_message']} <br>
--------------------------------------------------- <br>
IP: {$ip}
";
[/code]

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인