我使用ajax将表单发送到php,该表单运行正常,但是复选框在if
条件下无法正常工作。
输出var_dump($check1);
为false或true可以正常工作,并且可以正常输出。
即使echo " checked";
为假,也始终检查var_dump($check1);
的输出。
我的错误在哪里,为什么输出始终都是真实的?
send_ajax.php
<div id="txt">Result</div>
<input type="text" name="in1" id="in1" required="required"/><br>
<input type="text" name="in2" id="in2" required="required"/>
<input type="checkbox" name="checkbox" id="checkbox" required="required"/>
<button type="submit" class="" name="up" id="up" >Sign Up</button>
<script>
$("#up").click(function(){
var in1=$("#in1").val();
var in2=$("#in2").val();
var checkbox1=$('#checkbox').is(':checked');
// var checkbox1=$("#checkbox").val();
$.ajax({
url:'confirm.php',
method:'POST',
data:{
in1:in1,
in2:in2,
checkbox1:checkbox1
},
success:
function(data) {
$("#txt").html(data);
}
});
})
</script>
confirm.php
<?php
$in1=$_POST["in1"];
$in2=$_POST["in2"];
$check1=$_POST["checkbox1"];
var_dump($check1);
echo "<br>";
if($check1==true){
echo " checked";
}
else{
echo " not checked";
}
?>
答案 0 :(得分:0)
您正在使用
$check1=$_POST["checkbox1"];
但其中有一个复选框
$check1=$_POST["checkbox"];
答案 1 :(得分:0)
布尔值的传输和在服务器端对其的检查可能由于类型不足而导致意外。
如果以这种方式初始化变量会怎样?
$check1= $_POST["checkbox1"] == 'true' ? true : false;