フォームが送信された後に「すべてのフィールドが必要です」という通知を表示する前に非表示にする方法を考えていました。これが私のコードです:
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」でさえ機能しません。これらの文字列は引き続き送信できます:(