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