提交 PHP 后保留表单值

2021-12-23 00:00:00 checkbox radio-button forms php

我忘了说还有下拉菜单我想保留选择的值

I forgot to say there are drop down menus also that I would like to keep the chosen value of

我有一个包含复选框、单选按钮和一些文本字段的表单.我知道如何在表单提交后保留文本字段值,但我想在提交后保持单选按钮选择和复选框的选中状态.我在同一页面发帖.

I have a form with checkboxes, a radio buttons, and a few text fields. I know how to keep the text field values after form submit, but I would like to keep the radio button selection and checkboxes checked after submit. I am posting to the same page.

推荐答案

要预先选中单选按钮和复选框,您需要在 HTML 中添加 checked="checked" 属性为每个要显示的控件生成选中的控件.

To have the radio buttons and checkboxes pre-checked, you need to add the checked="checked" attribute to the HTML you generate for each control you want to display checked.

例如,如果您目前拥有:

For example, if you currently have this:

<input type="checkbox" name="foo" value="bar" />

你想把它改成这样:

<input type="checkbox" name="foo" value="bar"
    <?php echo empty($_POST['foo']) ? '' : ' checked="checked" '; ?>
/>

更新:对于下拉菜单,您要更改此内容:

Update: For drop down menus, you want to change this:

<select name="foo">
  <option value="bar">Text</option>
</select>

为此,使用selected="selected":

<select name="foo">
  <option value="bar" 
    <?php if(isset($_POST['foo']) && $_POST['foo'] == 'bar') 
          echo ' selected="selected"';
    ?>
  >Text</option>
</select>

注意保持上面出现的两个bar"值同步(在循环中回显选项将有助于确保这一点).

Be careful to keep the two "bar" values that appear above synchronized (echoing the options in a loop will help to make sure of that).

相关文章