表单提交不完整后如何保留表单数据

时间:2018-10-19 06:43:34

标签: javascript php jquery ajax

这是我的代码, PHP

if(isset($_POST['submit'])){

if (empty($_POST["name"])) {
    $NameErr = "Name is required";
} else {
    $name = Test_User_Input($_POST["name"]);
    $name = mysqli_real_escape_string($connection , $name);
}

if (empty($_POST["contact"])) {
    $ContactErr = "Contact is required";
} else {
    $contact = Test_User_Input($_POST["contact"]);
    $contact = mysqli_real_escape_string($connection , $contact);
}

if (empty($_POST["email"])) {
    $EmailErr = "Email is required";
} else {
    $email = Test_User_Input($_POST["email"]);
    $email = mysqli_real_escape_string($connection , $email);
}

if (empty($_POST["pan"])) {
    $PanErr = "PAN is required";
} else {
    $pan = Test_User_Input($_POST["pan"]);
    $pan = mysqli_real_escape_string($connection , $pan);
}

if (empty($_POST["dob"])) {
    $DobErr = "DOB is required";
} else {
    $dob = Test_User_Input($_POST["dob"]);
    $dob = mysqli_real_escape_string($connection , $dob);
}

if (empty($_POST["gender"])) {
    $GenderErr = "Gender is required";
} else {
    $gender = Test_User_Input($_POST["gender"]);
    $gender = mysqli_real_escape_string($connection , $gender);
}



if (!empty($name) && !empty($contact) && !empty($email) && !empty($pan) && 
!empty($dob) && !empty($gender){
$query = "INSERT INTO form ( name, contact, email, pan, birthday, 
gender )VALUES ('$name' , '$contact' , '$email' , '$pan' , '$dob' , 
'$gender')";
} 
if ($insert_query) {
    echo "Form Filled";
} else {
    echo "Please Fill the form";
}


}
function Test_User_Input($Data)
{
    return $Data;
}   

HTML

<form action="" autocomplete="off" method="post">
                            <div class="col-md-6 col-sm-6 col-xs-12 marB20">
                                <div class="form-group-kyc">
                                    <label>Full Name:</label><span class = "error_msg"><?php echo $NameErr; ?></span>
                                    <input type="text" name="name" id="name" placeholder="Full Name" class="form-control-kyc" value="<?php echo isset($_POST['name']) ? $_POST['name'] :' '?> ">
                                </div>
                            </div>
                            <div class="col-md-6 col-sm-6 col-xs-12 marB20">
                                <div class="form-group-kyc">
                                    <label>Contact Number:</label><span class = "error_msg"><?php echo $ContactErr; ?></span>
                                    <input type="text" name="contact" id="contact" placeholder="Contact Number" class="form-control-kyc" value="<?php echo isset($_POST['contact']) ? $_POST['contact'] : '' ?> ">
                                </div>
                            </div>
                            <div class="col-md-6 col-sm-6 col-xs-12 marB20">
                                <div class="form-group-kyc">
                                    <label>Email Id:</label><span class = "error_msg"><?php echo $EmailErr; ?></span>
                                    <input type="email" name="email" id="email" placeholder="Email id" class="form-control-kyc" value="<?php echo isset($_POST['email']) ? $_POST['email'] : '' ?> ">
                                </div>
                            </div>
                            <div class="col-md-6 col-xs-12 col-sm-6 marB20">
                                <div class="form-group-kyc">
                                    <label>PAN:</label><span class = "error_msg"><?php echo $PanErr; ?></span>
                                    <input  type="text" name="pan" id="pan" placeholder="PAN Card No." class="form-control-kyc" value="<?php echo isset($_POST['pan']) ? $_POST['pan'] : '' ?> ">
                                </div>
                            </div>
                            <div class="col-md-6 col-xs-12 col-sm-6 marB20">
                                <div class="form-group-kyc">
                                    <label>DOB:</label><span class = "error_msg"><?php echo $DateErr; ?></span>
                                    <input  type="date" name="dob" id="dob" placeholder="DOB." class="form-control-kyc" value="">
                                </div>
                            </div>
                            <div class="col-md-6 col-xs-12 col-sm-6 marB20">
                                <div class="form-group-kyc">
                                    <label>Gender:</label> <span class = "error_msg"><?php echo $GenderErr; ?></span>
                                    <select name ="gender" id = "gender" class="form-control-kyc">
                                    <option value="male"> Male </option>
                                    <option value="female"\> Female </option>
                                    </select>
                                </div>
                            </div>
    <div class="col-md-12 marT30">
   <div class="form-group-kyc">
   <input type="submit" 
   id="submit" name = "submit" class="itg-button" value="Submit">
                                                </div>
    </form>

我想知道,当用户提交表单失败时,如何保留表单值,因此用户不必重新填写表单。 另外,如果用户忘记填写一个值,该如何关注该特定字段。

ALSO
当提交表单以及刷新页面时,表单将重新填充并再次发送数据。 我该如何预防?

一种选择是提交后重定向到另一页,但是再次是当用户按下“后退”按钮时,将再次发送表单数据。

这里有什么可以做的吗?

2 个答案:

答案 0 :(得分:0)

如果要保留存储的值,只需回显后的值,如下所示。

<input type="text" name="name" id="name" placeholder="Full Name" class="form-control-kyc" value="<?php echo isset($_POST['name']) ? $_POST['name'] : '' ?>">

答案 1 :(得分:0)

用于保留字段的填充值。

<input type="text" name="name" id="name" placeholder="Full Name" class="form-control-kyc" value="<?php echo if(isset($_POST['$name'])? $_POST['name'] : ''; ) ?>">

为避免自动重新提交数据,您可以检查是否按下了提交按钮,如果没有,则不会将表单数据添加到数据库中并将其重定向到index.php

<?php
 if(isset($_POST['your-submit-button-name'])){
    //within this curly brackets add your codes
}else{
   header('Location: index.php');
   die();
}
?>