HTML / AJAX / PHP表格流程

时间:2015-05-15 22:59:19

标签: javascript php jquery ajax

您好我的第一篇文章。

我遇到了一些编码问题。要开始解释,我将有一个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无论如何如果点击了复选框!

提前谢谢! 希望有人帮助我!。

1 个答案:

答案 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 = '';
}