我想知道如何在提交表单后显示“所有必填字段”,但之前隐藏它。这是我的代码:
if (isset($_POST['region'], $_POST['description'], $_POST['remarks']) && !empty ($_POST['region']) && !empty($_POST['description']) && !empty($_POST['remarks']) )
{
$region = mysql_escape_string($_POST['region']);
$description = mysql_escape_string($_POST['description']);
$remarks = mysql_escape_string($_POST['remarks']);
if (strlen($region>50)) {
$error .= "Only 50 characters are allowed in the region field.";
}
else {
if (strlen($description>500)) {
$error .= "Only 500 characters are allowed in the region field.";
}
else {
mysql_query("INSERT INTO register (region, description, remarks) VALUES(
'$region',
'$description',
'$remarks') ") or die('Not saved. ' . mysql_error());
}
}
}
else {
$error.= "Please fill all the fields.";
}
echo $error;
?>
//form starts here
但是,即使第一次加载页面(不提交输入),使用此选项也会显示“请填写所有字段”。我该怎么做?另外,即使是嵌套的'if'也不起作用。这些字符串仍然可以提交:(
答案 0 :(得分:0)
检查用户请求是POST还是GET。
只需检查$ _POST是否已设置即可轻松实现。
/* ... */
else if (isset($_POST)) {
$error.= "Please fill all the fields.";
}
我很确定你可以通过查看$_SERVER['REQUEST_METHOD'] == 'POST'
来实现同样的目标,可能会更清洁。