PHP提交时显示错误
因此,我制作了一个注册表,这样用户在继续之前必须从三个无线电选项中选择一个。但是,如果用户没有选择某个选项并单击“提交”,我希望至少显示一条消息,上面写着“请选择一个选项”或其他内容。以下是我目前的代码:PHP提交时显示错误,php,html,Php,Html,因此,我制作了一个注册表,这样用户在继续之前必须从三个无线电选项中选择一个。但是,如果用户没有选择某个选项并单击“提交”,我希望至少显示一条消息,上面写着“请选择一个选项”或其他内容。以下是我目前的代码: <?php $reg_type = ""; function setclick() { if(isset($_POST["Submit"])) $clicked=1; else $clicked=0; } if ($_SERVER["RE
<?php
$reg_type = "";
function setclick()
{
if(isset($_POST["Submit"]))
$clicked=1;
else
$clicked=0;
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["Reg_type"])) {
$clicked=1;
header('Location: Registration_1.php');
}
else {
$reg_type = $_POST["Reg_type"];
header('Location: Registration_2.php');
}
}
echo $clicked;
?>
<form name="frmtype" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="POST" >
<input type="radio" name="Reg_type" value="1"/> Registering myself with credit card or bank account <br/>
<input type="radio" name="Reg_type" value="2"/> Registering multiple people using credit card or bank account <br/>
<input type="radio" name="Reg_type" value="3"/> Registering multiple people using a purchase order <br/>
<input type="submit" name="Submit" value="Submit" />
<?php
setclick();
if($clicked)
echo "Please select an option";
?>
试试这个
<script>
function checkform(){
var checked = false;
var buttons = document.getElementsByTagName('input')
for (var i = 0; i < buttons.length ; i++) {
if (buttons[i].checked) {
checked = true;
break;
}
}
return checked;
}
</script>
<form onsubmit="return checkform()">
<input type="radio" name="Reg_type" value="1"/> Registering myself with credit card or bank account <br/>
<input type="radio" name="Reg_type" value="2"/> Registering multiple people using credit card or bank account <br/>
<input type="radio" name="Reg_type" value="3"/> Registering multiple people using a purchase order <br/>
<input type="submit" name="Submit" value="Submit" />
函数检查表(){
var检查=假;
var buttons=document.getElementsByTagName('输入')
对于(变量i=0;i
使用信用卡或银行账户注册多人
使用采购订单注册多人
这应该让你开始。请注意,此脚本正在按标记名选择元素,这意味着它将拾取表单中的任何输入。如果您同意使用,我强烈推荐它,它将使此类任务变得简单。
<?php
$reg_type = $_POST['Reg_type'];
if($reg_type == "1"){
//action 1
} else if($reg_type == "2"){
//action 2
} else if($reg_type == "3") {
//action 3
} else {
// no radio button is checked. display the message
$message = "Please select an option";
}
?>
如果表单已发布,则您的setclick()
函数将始终将$clicked
设置为true。由于随后在主php块之后调用setclick()
,因此无论其余逻辑是否更改了它,都是正确的。试试这个:
if(isset($_POST['Reg_type']) && $_POST['Reg_type'] != ''){
$reg_type = $_POST['Reg_type'];
header('Location: Registration_2.php');
} else $clicked = true;
然后在表格下方的页面底部:
if($clicked) echo "Please select an option";
这很容易做到。但是,最简单的方法是默认选中第一个单选按钮。我们说的是PHP,不是javascript。Old matey potatey正在进行服务器端验证请不要在客户端验证任何内容。@FirmView这只是为了增强用户体验,而不是为了安全。不管怎样,验证都应该在服务器端完成。