HTML / ajax / PHP表单处理

HTML / AJAX / PHP FORM PROCESS

本文关键字:处理 表单 ajax HTML PHP      更新时间:2023-09-26

大家好。

我有一些编码的麻烦。为了开始解释,我将有一个html表单,有5个复选框,我需要通过post方法传递变量。我遇到的问题是,无论checkbox是否被选中,它都会通过post向php发送相同的内容。

我有3个档案。

1st HTML FORM
2nd .JS
3rd .PHP

On 1st archive (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,

第三档。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,通过电子邮件recibe(不关心如果它是粗糙的ABC),但现在我得到ABCDE无论复选框被点击与否!

提前感谢!

您应该使用.prop('checked') === true,或者正如另一位先生指出的那样,您也可以使用.is(':checked')

使用<<p> strong> .prop ()
var cat_a = $("#cat_a").prop('checked') === true ? 'A' : '';
使用<<p> strong> . ()
var cat_a = $("#cat_a").is(':checked') ? 'A' : '';

或者不要三元操作符

if ($("#cat_a").prop('checked') === true) {
   var cat_a = 'A';
} else {
   var cat_a = '';
}