[英]Displaying input error messages next to the input field
我想在輸入字段旁邊顯示錯誤檢查。 目前,錯誤顯示在頁面頂部。
也許有一些方法可以檢查輸入錯誤? 我找不到類似的示例,其中 html 和 php 代碼被分成不同的文件,或者我的代碼完全錯誤。
index.php
<html> <head> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="css/style.css"> <title>testpage</title> </head> <body> <?php require('process.php'); ?> <h1>Form</h1> <form method="post" action=""> <div> Date: <input type="date" name="date"/><br /> </div> <div> <label>Start:</label> <select name="starttime" style="margin-right:15px" > <option value="09:00:00">09:00</option> <option value="17:00:00">17:00</option> </select> <label>End:</label> <select name="endtime"> <option value="18:00:00">18:00</option> </select> <br> </div> <div> Name: <input type="text" name="user_name" placeholder="Name" /><br /> </div> Mail: <input type="email" name="user_email" placeholder="Mail" /><br /> Message: <textarea name="user_text"></textarea><br /> <input type="submit" value="Send" /> </form> <h3 class=" txt_center">DB Output <span id="curdate"> <?php require('calendar.php'); ?> <.-- <script type="text/javascript" src="js/time-select.js"></script> --> </body> </html>
過程.php
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$u_date = filter_var($_POST["date"]);
$u_starttime = $_POST["starttime"];
$u_endtime = $_POST["endtime"];
$u_name = filter_var($_POST["user_name"]);
$u_email = filter_var($_POST["user_email"], FILTER_SANITIZE_EMAIL);
$u_text = filter_var($_POST["user_text"]);
$error = array();
if (empty($u_date)){
$error['date'] = 'Date is empty!';
}
elseif ( $u_starttime > $u_endtime ){
echo "*Incorrect time";
}
elseif (empty($u_name)){
echo "Name is empty.";
}
else{
require_once('db-connect.php');
$statement = $mysqli->prepare("INSERT INTO users_data (date, start_time, end_time, user_name, user_email, user_message) VALUES(?, ?, ?, ?, ?, ?)");
$statement->bind_param('ssssss', $u_date, $u_starttime, $u_endtime, $u_name, $u_email, $u_text);
if($statement->execute()){
print "Hello, " . $u_name . "!, request is complete!";
}else{
print $mysqli->error;
}
}
}
?>
您可以將 'required' 屬性添加到<input>
元素,這些元素會在表單提交時得到驗證。 例如<input type="date" name="date" required/>
消除了為錯誤 output 編寫代碼的必要性。
編輯: 在這里你可以看到警告是如何顯示的
此外,驗證
elseif ( $u_starttime > $u_endtime ){
echo "*Incorrect time";
}
不是必需的,因為用戶的選擇已經強制 starttime < endtime。
干杯
這是在日期輸入字段旁邊設置日期驗證的示例。 在處理中。php:
` $errordate="";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$u_date = filter_var($_POST["date"]);
if (empty($u_date)){
$errordate= 'Date is empty!';
}}
在你的 index.php: <input type="date" name="date"/> * <?php echo "<p style='color:red;'>".$errordate. "</p>"; ?>
<input type="date" name="date"/> * <?php echo "<p style='color:red;'>".$errordate. "</p>"; ?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.