我觉得提供的答案有些含糊,而且在某种意义上也不正确,因为它们告诉您value
根据这些字段是否存在值来设置属性内字段的内容。
这就是为什么。当您将if
语句逻辑放入value
属性中时,它会将 value 属性设置为'YOURVALUE'
或'""'
。<-这就是问题所在。当为空时,该字段的值被设置为空字符串$_POST["field_name"]
。如果您有表单验证并希望抛出“空字段”错误,这将通过您的验证逻辑,这将是完全不正确的(您的表单字段将显示为空,但其中会有一个空字符串)。
相反,只需回显变量而不进行任何检查。如果没有设置,什么都不会发生。如果是,您将能够保留该价值。例如,
<input type="text" name="email" value="<?php echo $_POST["email"]; ?>" >
value
这是另一个代码示例,我放弃了上述整个情况,仅在变量不为空时才回显属性。
<h2>PHP Form Validation Example</h2>
<p><span class="error">* required field.</span></p>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Name: <input type="text" name="name" <?php if (!empty($_POST['name'])) {echo "value=\"" . $_POST["name"] . "\"";} ?> >
<span class="error">* <?php echo $nameErr;?></span>
<br><br>
E-mail: <input type="text" name="email" <?php if (!empty($_POST['email'])) {echo "value=\"" . $_POST["email"] . "\"";} ?> >
<span class="error">* <?php echo $emailErr;?></span>
<br><br>
Website: <input type="text" name="website" <?php if (!empty($_POST['website'])) {echo "value=\"" . $_POST["website"] . "\"";} ?> >
<span class="error"><?php echo $websiteErr;?></span>
<br><br>
Comment: <textarea name="comment" <?php if (!empty($_POST['comment'])) {echo "value=\"" . $_POST["comment"] . "\"";} ?> rows="5" cols="40"></textarea>
<br><br>
Gender:
<input type="radio" name="gender" value="female" <?php if ($_POST['gender']=="female") {echo "checked";} ?> >Female
<input type="radio" name="gender" value="male" <?php if ($_POST['gender']=="male") {echo "checked";} ?> >Male
<span class="error">* <?php echo $genderErr;?></span>
<br><br>
<input type="submit" name="submit" value="Submit">
</form>
关于用户提出的实际问题,您需要将类似的代码添加到您的form.php
文件中。