如何在PHP中"记住"选择的表单值?

Jac*_*cob 6 html php forms validation

如果用户未能通过表单验证,那么为了使它们更容易,我们可以这样做:

if(isset($_POST['submit'])) {
    $email = $_POST['email'];
    //....
}

<input type="text" name="phone" value="<?php echo $phone; ?>" />
<input type="text" name="email" value="<?php echo $email; ?>" />
...
Run Code Online (Sandbox Code Playgroud)

因此,在这种情况下,如果用户因为输入了电子邮件但未输入电话号码而未通过验证,那么当提交页面刷新并警告他们丢失了电话时,电子邮件(他们填写的电子邮件)已经在其中放置并且不需要用户重新输入.

但是,如何"记住"用户为select,radio和checkbox输入选择的值?

Nul*_*ion 1

它的工作原理是一样的,但需要更多的工作:

<select name="whatever">
  <option value="Apple">Apple</option>
  <option value="Banana" selected="selected">Banana</option>
  <option value="Mango">Mango</option>
</select>
Banana is selected here.

<input type="checkbox" name="fruits[]" value="banana" /> Banana
<input type="checkbox" name="fruits[]" value="mango" checked="checked" /> Mango
<input type="checkbox" name="fruits[]" value="apple" checked="checked" /> Apple
Mango and Apple are checked here
Run Code Online (Sandbox Code Playgroud)

因此,基本上,您在生成表单时将selected="selected"或添加到适当的字段。checked="checked"

另一种选择是在页面加载并准备好进行 DOM 操作后使用 jQuery 之类的工具进行这些选择。通过这种方式,您可以轻松地将所有更改放在一个位置,而不会丑化代码。当然,现在有一个缺点,您需要加载 jQuery,并且您的用户需要有 JS。