簡體   English   中英

在輸入字段旁邊顯示輸入錯誤消息

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM