使用PHP $ _POST记住选择框中的选项?

tom*_*ato 1 html php forms

我有一个POST到itselft的表单,以便用户可以执行您在购物车中找到的内容.

例如,增加数量,选择邮资类型.

我的问题是我的表单选择元素称为"邮资",只要表单重新加载自己,它会忘记选中的内容.

我所有的其他字段都记住了它们的值:

<input type="text" name="postcode" value="<?php echo $_POST['postcode']; ?> " />
Run Code Online (Sandbox Code Playgroud)

如何使用$ _POST值自动选择用户完成的选择字段中的选项?

我试过这个:

<select name="postage" selected="<?php echo $_POST['postage']; ?>" >
Run Code Online (Sandbox Code Playgroud)

还有这个

<select name="postage" value="<?php echo $_POST['postage']; ?>" >
Run Code Online (Sandbox Code Playgroud)

谢谢

Jon*_*Jon 7

你几乎得到了它.当且仅当值等于元素的值时,才需要在元素selected="selected"上设置属性(技术上需要的确切形式取决于您的HTML文档类型,但这是一个安全的默认值).所以:<option>$postage

<select name="postage">
<option value="foo" 
    <?php if ($_POST['postage'] == "foo") echo 'selected="selected" '; ?>
 >
</select>
Run Code Online (Sandbox Code Playgroud)

请注意,这违反了DRY原则,因为您现在有两次出现的字符串"foo",因此它是重构的主要候选者.一种好的方法是将值/文本对保留在一个数组中,然后迭代它foreach以生成<option>标记.