PHP单选按钮总是给出相同的值

PHP单选按钮总是给出相同的值,php,html,email,button,radio,Php,Html,Email,Button,Radio,我正在尝试制作一个简单的php单选按钮,它有一个“是”或“否”选项,我想把选中的选项放在一封电子邮件中。一切似乎都正常,除了无论我做什么,我总是得到第二个无线电选项(在本例中为“否”) 这是我的代码,我已经学习了所有相关的问题和教程,但我是php和代码的初学者。我今天已经解决这个问题7个小时了,所以非常感谢您的帮助 **我是从themeforest模板构建网站的,我只是一个程序员 HTML代码 <form class="contact-form" action="php/send-emai

我正在尝试制作一个简单的php单选按钮,它有一个“是”或“否”选项,我想把选中的选项放在一封电子邮件中。一切似乎都正常,除了无论我做什么,我总是得到第二个无线电选项(在本例中为“否”)

这是我的代码,我已经学习了所有相关的问题和教程,但我是php和代码的初学者。我今天已经解决这个问题7个小时了,所以非常感谢您的帮助

**我是从themeforest模板构建网站的,我只是一个程序员

HTML代码

<form class="contact-form" action="php/send-email-moving-help.php" method="post" novalidate>
  <div class="helper-form-box">
    <div class="row">
      <div class="column width-6">
        <input type="text" name="fname" class="form-fname form-element large" placeholder="First Name*" tabindex="1" required>
      </div>
      <div class="column width-6">
        <input type="text" name="lname" class="form-lname form-element large" placeholder="Last Name*" tabindex="2" required>
      </div>
      <div class="column width-12">
        <input type="email" name="email" class="form-email form-element large" placeholder="Email Address*" tabindex="3" required>
      </div>
      <div class="column width-6">
        <input type="tel" name="telephone" class="form-telephone form-element large" placeholder="Phone*" tabindex="4" required>
      </div>
      <div class="column width-6 pt-10">
        <div class="field-wrapper radio-input">
          <p>Can we text you?&nbsp; &nbsp; &nbsp; </p>
          <input id="radio-1" class="form-element radio" name="radio-group-1" type="radio" value="yes">
          <label for="radio-1" class="radio-label">Yes</label>
          <input id="radio-2" class="form-element radio" name="radio-group-1" type="radio" value="no">
          <label for="radio-2" class="radio-label">No</label>
        </div>
      </div
    </div>
  </div
</form
可能有关联的JS

contactForm: function() {
            $(ia).submit(function(a) {
                a.preventDefault();
                var b = $(this),
                    c = b.parent().find(Y),
                    d = b.find(X),
                    e = b.find('input[type="email"]'),
                    f = b.find(Z),
                    g = b.find(_),
                    h = b.attr("action"),
                    i = b.attr("method"),
                    j = [],
                    k = encodeURIComponent(b.find("textarea[name=message]").val() + "\n"),
                    l = [];
                b.find("input:not([type=submit]),select,textarea").each(function(a, b) {
                    var c = $(b),
                        d = c.attr("name");
                    if (c.hasClass("form-aux") && d) {
                        var e = c.data("label") || d,
                            f = c.find("option:selected").text(),
                            g = c.val();
                        !g && c.is("select") ? g = e == f ? "Not selected" : c.find("option:selected").text() : "checkbox" != c.attr("type") || c.prop("checked") || (g = "Not checked"), l.push({
                            name: d,
                            label: encodeURIComponent(e),
                            value: encodeURIComponent(g)
                        })
                    } else d && "message" != d && j.push(d + "=" + encodeURIComponent(c.val()))
                });
                for (var m = 0; m < l.length; m++) {
                    var n = encodeURIComponent("\n") + l[m].label + "%3A%20" + l[m].value;
                    k += n
                }
                j.push("message=" + k), j = j.join("&");
                var o = !1,
                    p = !1,
                    q = !1;
                if (ja = ja.split(".").join(""), d.removeClass(ja), d.each(function() {
                        ($(this).attr("required") || $(this).children().attr("required")) && ($(this).is(":checkbox") ? $(this).is(":checkbox:checked") || (o = !0, $(this).addClass(ja)) : $(this).children().is("select") ? $(this).children().val() == $(this).children().find("option:selected").text() && (o = !0, $(this).addClass(ja)) : $(this).val() || (o = !0, $(this).addClass(ja)), o && c.hide().text(oa).fadeIn(200))
                    }), o || (p = !0), e.val() && !Oa.isValidEmail(e.val()) ? (c.hide().text(pa).fadeIn(200), e.addClass(ja)) : q = !0, "" !== f.val()) return !1;
                if (o && e.val() && !Oa.isValidEmail(e.val()) && c.hide().text(oa + " " + pa).fadeIn(200), p && q) {
                    var r = $(g).val();
                    $(g).css({
                        width: $(g).outerWidth() + "px"
                    }).val(la).attr("disabled", !0), c.hide().text(ka).fadeIn(200), $.ajax({
                        url: h,
                        type: i,
                        data: j,
                        dataType: "json"
                    }).done(function(a) {
                        try {
                            if (a.response === !0) c.text(ma), c.delay(1500).fadeOut(200), d.val("");
                            else {
                                var b = "undefined" == typeof a.json.error_message ? "There is a possibility that your message was not sent. Please check up the server or script configuration." : a.json.error_message;
                                c.hide().text(na + " " + b).fadeIn(200)
                            }
                        } catch (b) {
                            console.log("error in parsing returned ajax data: " + b), console.log(a), c.hide().text("Error occurred. Please see the console for details.").fadeIn(200)
                        }
                    }).fail(function(a, b, d) {
                        console.log("Error occured in processing your request:"), console.log(a), console.log("Text status"), console.log(b), console.log("Error thrown"), console.log(d), console.log("Servre response"), console.log(a.status), console.log("Response Text may contain error output from PHP"), console.log(qXHR.responseText), c.hide().text(na + " (Please see the console for error details.)").fadeIn(200)
                    }).always(function() {
                        $(g).css({
                            width: ""
                        }).val(r).attr("disabled", !1)
                    })
                }
            })
        },
        isValidEmail: function(a) {
            var b = new RegExp(/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i);
            return b.test(a)
        },
contactForm:function(){
$(ia).提交(功能(a){
a、 预防默认值();
var b=$(此),
c=b.parent().find(Y),
d=b。找到(X),
e=b.find('input[type=“email”]”),
f=b.找到(Z),
g=b.find(u),
h=b.attr(“动作”),
i=b.attr(“方法”),
j=[],
k=encodeURIComponent(b.find(“textarea[name=message]”).val()+“\n”),
l=[];
b、 查找(“输入:不([type=submit]),选择,文本区域”)。每个(函数(a,b){
var c=$(b),
d=c.attr(“名称”);
if(c.HASSClass(“表格aux”)和d){
var e=c.数据(“标签”)| | d,
f=c.find(“选项:选定”).text(),
g=c.val();
!g&&c.is(“选择”)?g=e==f?“未选择”:c.find(“选项:已选择”).text():“复选框”!=c.attr(“类型”)|| c.prop(“已选中”)|(g=“未选中”),l.push({
姓名:d,,
标签:编码元件(e),
值:编码元件(g)
})
}else d&&“message”!=d&&j.push(d+“=”+encodeURIComponent(c.val())
});
对于(var m=0;m
您需要为每个单选按钮指定一个唯一的名称。因为每个单选按钮都有名称“radio-group-1”,所以第二个选项将覆盖第一个选项

您可以将它们放在if语句中

if($_POST(['radio-group-1') == 1 {
  $radio = "Yes";
} elseif($_POST['radio-group-2') == 1 {
  $radio = "No";
}

原因是,在JavaScript中,您正在收集所有
元素并创建要发送的对象。在这一行中:

b.find("input:not([type=submit]),select,textarea").each(function(a, b) {
然后,您的单选按钮有两个名称相同的元素,第二个是带有“否”值的元素。如果您在inspector窗口中检查请求参数,您可以看到“是”和“否”两个值都在发送,但因为“否”是第二个,您的php使用它作为值。因此,在JavaScript中,您必须只获取选中的单选按钮和复选框(如果有)元素,而不是所有元素

你只需要查一下
b.find("input:not([type=submit]),select,textarea").each(function(a, b) {
b.find("input:not([type=submit],[type=checkbox],[type=radio]),select,textarea,:radio:checked,:checkbox:checked").each(function(a, b) {