提交后保留表单值

问题描述 投票:0回答:1

我想在输入字段中保留表单值,单击提交按钮后,如果存在验证错误,则剩余字段应保留该值。

并且刷新页面后,之前填写的数据不应显示

我可以实现这个目标吗?

报名表

    <form id="myForm" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">

        <div class="form_group">
            <label for="fname">First name:</label>
            <input type="text" id="fname" name="fname" value="<?= (isset($_POST['fname'])) ? strip_tags($_POST['fname']) : '' ?>"> <span class="error">
                <?php echo $fnameErr; ?>
            </span>
        </div>

        <div class="form_group">
            <label for="lname">Last name:</label>
            <input type="text" id="lname" name="lname" value="<?= (isset($_POST['lname'])) ? strip_tags($_POST['lname']) : '' ?>"><span class="error">
                <?php echo $lnameErr; ?>
            </span>
        </div>

        <div class="form_group">
            <label for="email">Email :</label>
            <input type="text" id="email" name="email" value="<?= (isset($_POST['email'])) ? strip_tags($_POST['email']) : '' ?>">
            <span class="error">
                <?php echo $emailErr; ?>
            </span>
        </div>

        <div class="form_group">
            <label for="phone">Phone No. :</label>
            <input type="text" id="phone" name="phone" value="<?= (isset($_POST['phone'])) ? strip_tags($_POST['phone']) : '' ?>"><span class="error">
                <?php echo $phoneErr; ?>
            </span>
        </div>

        <div class="form_group">
            <label for="address">Address :</label>
            <textarea name="address" id="address" value="<?= (isset($_POST['address'])) ? strip_tags($_POST['address']) : '' ?>"></textarea><span class="error" onchange="" onclick="">
                <?php echo $addressErr; ?>
            </span>
        </div>

        <div class="form_group">
            <label for="country">Country :</label>
            <select name="country" id="selectCountry" value="<?= (isset($_POST['country'])) ? strip_tags($_POST['country']) : '' ?>"> 
                <option value="">Select Country</option>
                <option value="in">India</option>
                <option value="is">Israel</option>
                <option value="ca">Canada</option>
            </select>
            <span class="error">
                <?php echo $countryErr; ?>
            </span>
        </div>

        <div class="form_group">
            <label for="state">State :</label>
            <select name="states" id="selectStates" value="<?= (isset($_POST['states'])) ? strip_tags($_POST['states']) : '' ?>" >
                <option value="">Select State</option>
                <option value="gj">Gujarat</option>
                <option value="rj">Rajasthan</option>
                <option value="bh">Bihar</option>
            </select><span class="error">
                <?php echo $stateErr; ?>
            </span>
        </div>

        <div class="form_group">
            <label for="pincode">Pincode :</label>
            <input type="text" name="pincode" id="pincode" value="<?= (isset($_POST['pincode'])) ? strip_tags($_POST['pincode']) : '' ?>"><span class="error">
                <?php echo $pincodeErr; ?>
            </span>
        </div>

        <div class="form_group">
            <label for="password">Password :</label>
            <input type="password" id="password" name="password" value="<?= (isset($_POST['password'])) ? strip_tags($_POST['password']) : '' ?>"><span class="error">
                <?php echo $passwordErr; ?>
            </span>
        </div>

        <div class="form_group">
            <label for="confirmPass">Confirm Password :</label>
            <input type="password" id="confirmPass" name="confirmPass" value="<?= (isset($_POST['confirmPass'])) ? strip_tags($_POST['confirmPass']) : '' ?>"><span class="error">
                <?php echo $confirmPassErr; ?>
            </span>
        </div>


        <div class="form_group">
            <button type="submit"> Register</button>
        </div>

        <div class="form_group">
            <p>already have an account ? <a href="login.php"><span>Login</span></a></p>
        </div>

我已经在输入字段中尝试过此操作。但我的文本区域和下拉列表仍然不起作用(不保留该值)

php html forms dropdown textarea
1个回答
0
投票

将您的 textArea 部分更新为以下格式。

<textarea name="address" id="address">
    
  <?= (isset($_POST['address'])) ? strip_tags($_POST['address']) : '' ?>
    
</textarea>

更新您的国家/地区选择下拉列表,如下所示。

<select name="country" id="selectCountry"> 
        <option value="">Select Country</option>
        <option value="in" <?= (isset($_POST['country']) && strip_tags($_POST['country']) == 'in') ? 'selected' : '' ?>>India</option>
        <option value="is" <?= (isset($_POST['country']) && strip_tags($_POST['country']) == 'is') ? 'selected' : '' ?>>Israel</option>
        <option value="ca" <?= (isset($_POST['country']) && strip_tags($_POST['country']) == 'ca') ? 'selected' : '' ?>>Canada</option>
    </select>

更新您的州选择下拉列表,如下所示。

<select name="states" id="selectStates">
        <option value="">Select State</option>
        <option value="gj" <?= (isset($_POST['states']) && strip_tags($_POST['states']) == 'gj') ? 'selected' : '' ?>>Gujarat</option>
        <option value="rj" <?= (isset($_POST['states']) && strip_tags($_POST['states']) == 'rj') ? 'selected' : '' ?>>Rajasthan</option>
        <option value="bh" <?= (isset($_POST['states']) && strip_tags($_POST['states']) == 'bh') ? 'selected' : '' ?>>Bihar</option>
    </select>
© www.soinside.com 2019 - 2024. All rights reserved.