原谅我提出这样的基本问题,但是我尝试过很多次并失败了,试图找出问题所在。我有一个非常简单的HTML表单,其中包含一个复选框。然后,我想使用jquery将外部php文件加载到与“ content” div中的表单相同的页面上,以便该表单明显可更新。 php文件只是检查是否选中该复选框并在屏幕上返回结果。这是html:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#submitbutton").click(function(){
$("#content").load("loadedpage.php");
return false;
});
});
</script>
</head>
<body>
<form id="testform" action="" method="post">
<input type="checkbox" id="checkbox1" name="checkbox1" value="testcheckbox">Check this box:</input>
<input type="submit" id="submitbutton" name="submitbutton" value="Submit">
</form>
<div id="content">
</div>
</body>
</html>
这是外部php文件:
<?php
if(empty($_POST["checkbox1"]))
{
echo "box wasn't checked";
}
else
{
echo "box was checked";
}
?>
我的问题是,无论是否选中该复选框,php都将返回“未选中该框”,但是,当我通过“ action”属性将此表单传递给php文件时,一切正常应该,因此我知道错误可能在jquery中。如果有人能阐明一点,我将非常感激。
答案 0 :(得分:1)
您的方法是错误的。您可以使用Jquery做到这一点。
$(document).on("click", "#submitbutton", function(e){
e.preventDefault(); // To stop form from submitting
if($('#checkbox1').is(":checked")){
$("#content").html("Checkbox is checked");
$("#testform").submit();
}else{
$("#content").html("Checkbox is not checked");
}
});
答案 1 :(得分:0)
您需要在.load()中发出的请求中发送复选框值,如下所示:
$(document).ready(function(){
$("#submitbutton").click(function(){
$("#content").load("loadedpage.php", {checkbox1: document.querySelector('#checkbox1').checked });
return false;
});
});
答案 2 :(得分:0)
CASE
或
$("#submitbutton").click(function(event){
if ($("#checkbox1").is(':checked') === false) {
$("#content").load("loadedpage.php");
} else {
$("#content").load("loadedpage.php", { checkbox1: true });
}
return false;
});
您要在loadingpage.php中检查是否为空,而可以检查是非。