您好我的第一篇文章。
我遇到了一些编码问题。要开始解释,我将有一个html表单,有5个复选框,我需要通过post方法传递变量。我遇到的麻烦是无论是否选中复选框,它都会通过邮件将相同的内容发送给php。
我有3个档案。
1st HTML FORM
2nd .JS
3rd .PHP
第一档案(HTML) 复选框设置为:
input type="checkbox" class="form-control" id="cat_a" name="cat_a" value="A"<br>
input type="checkbox" class="form-control" id="cat_b" name="cat_a" value="B"<br>
input type="checkbox" class="form-control" id="cat_c" name="cat_a" value="C"<br>
input type="checkbox" class="form-control" id="cat_d" name="cat_a" value="D"<br>
input type="checkbox" class="form-control" id="cat_e" name="cat_a" value="E"<br>
在我的第二个档案.JS 我将其定义为:
var cat_a = $("input#cat_a").val();<br>
var cat_b = $("input#cat_b").val();<br>
var cat_c = $("input#cat_c").val();<br>
var cat_d = $("input#cat_d").val();<br>
var cat_e = $("input#cat_e").val();<br>
然后
$.ajax({
url: "././mail/contact_me.php",
type: "POST",
data: {
cat_a: cat_a,
cat_b: cat_b,
cat_c: cat_c,
cat_d: cat_d,
cat_e: cat_e,
第3档案.php
$cat_a = $_POST['cat_a'];<br>
$cat_b = $_POST['cat_b'];<br>
$cat_c = $_POST['cat_c'];<br>
$cat_d = $_POST['cat_d'];<br>
$cat_e = $_POST['cat_e'];<br>
并发送
$email_body = "Categoria:\n$cat_a\n$cat_b\n$cat_c\n$cat_d\n$cat_e\nConsulta:\n$message";
我遇到的麻烦是无论是否检查过值,我可能会初始化值或其他内容。我真的是编程新手,无法看到我的错误......
如果用户通过电子邮件检查选项A,B和C以便通过电子邮件进行重新定位,我希望通过电子邮件进行最终结果(不要小心它的粗略是ABC)但是现在我得到了ABCDE无论如何如果点击了复选框!
提前谢谢! 希望有人帮助我!。答案 0 :(得分:1)
您应该使用.prop('checked') === true
,或者如同其他绅士所指出的那样,您也可以使用.is(':checked')
。
使用 .prop()
var cat_a = $("#cat_a").prop('checked') === true ? 'A' : '';
使用 .is()
var cat_a = $("#cat_a").is(':checked') ? 'A' : '';
如果您不喜欢 三元 运营商
if ($("#cat_a").prop('checked') === true) {
var cat_a = 'A';
} else {
var cat_a = '';
}