我正在寻找一种方法来告诉用户,如果他在没有选中任何复选框的情况下按下提交按钮,则必须至少选中复选框。通过使用PHP
答案 0 :(得分:1)
<?php
if(isset($_POST['submit']))
{
$checked=0;
for($i=0;$i<=2;$i++){//check all the boxes
if(isset($_POST['checkbox'.$i]))
$checked=1;
}
}
if ($checked==0){//alert if no boxes are checked
echo("You must check at least 1");
}
else{
header("location: nextpage.php");
}
?>
<form name="form1" method="POST" action="">
<input name="checkbox0" type="checkbox" value="1"> 1
<input name="checkbox1" type="checkbox" value="2"> 2
<input name="checkbox2" type="checkbox" value="3"> 3
<input name="submit" type="submit" value="Submit">
</form>
答案 1 :(得分:1)
您可以使用@ jm-verastigue将用户重定向到您想要的页面:
if ($checked == 0){
// display alert
} else {
// redirect user
}
答案 2 :(得分:0)
PHP在用户看到页面之前发生在服务器上。用户只能看到最终渲染的产品。您可以使用javascript来测试您的元素在离开页面之前是否已被选中,或者在下一页上对其进行测试,以便处理表单。 (或者两者兼顾,因为用户可以关闭javascript。)
您正在寻找的JS的开头是onsubmit()
,也许是document.getElementByID['the id of the input field'].checked
答案 3 :(得分:0)
我会使用Jquery这样做并且这样做......
<form id="test" method="post" action="wherever.php">
<input type="checkbox" id="checkbox1" name="test" value="Checkbox1">Checkbox1
<button id="formsubmit">SUBMIT</button>
</form>
然后在你的Jquery中,做
$('#formsubmit').click(function(e){
e.preventDefault();
if($("#checkbox1").is(':checked')){
//on success
$('form#test').submit();
} else {
//on no checkbox
alert('you need to check box');
}
});
答案 4 :(得分:0)
如果你想要 PHP ,你可以这样做:
<?php
if(isset($_POST['SubmitButton'])) //checking if form was submitted
{
if( isset($_POST['test'] )) //checking if button was checked
{
echo "Checkbox was checked!";
}
}
?>
<form action="" method="post">
<input type="checkbox" name="test" value="value">
<input type="submit" name="SubmitButton"/>
</form>
这将检查表单是否已提交,然后检查是否已选中该复选框。如果是,那么它只是回应消息。很简单。
希望这有帮助。