保留已从php中的默认值更改的值

时间:2014-05-13 13:14:53

标签: php html forms xhtml

我有一个带文本框的xhtml表单,依此类推。我有一个用于邮政编码的方框,默认值为119900.

<td><label for="postcode"> Post Code (default "119900"): </label></td>
<td><input type="text" value= "119900" id="postcode" name="postcode" size=6 maxlength=6/>

如上面的代码所示,这是通过将值设置为119900来完成的。我想要做的是,如果有人更改并提交表单,则保留框中的输入。因此,如果我将它从119900更改为110055并单击提交,110055应保留在框中而不是110099.无论如何,我能做到吗?我试过了

<td><label for="postcode"> Post Code (default "119900"): </label></td>
<td><input type="text" value= "119900"
value="<?php echo (isset($_POST["postcode"]) ? $_POST["postcode"] : ''); ?>"
id="postcode" name="postcode" size=6 maxlength=6/>

似乎没有用。

2 个答案:

答案 0 :(得分:3)

所以关闭。不要在三元语句中使用空白默认值,只需设置默认值(并忽略value属性的无效重复)。:

<input type="text"
value="<?php echo (isset($_POST["postcode"]) ? $_POST["postcode"] : '119900'); ?>"
id="postcode" name="postcode" size=6 maxlength=6/>

你也可以稍微缩短一点:

<input type="text" value="<?= ($_POST["postcode"]) ?: '119900'); ?>"
id="postcode" name="postcode" size=6 maxlength=6/>

(对于抱怨短标签使用的人来说,PHP的最低支持版本是5.4,默认情况下启用它们。所以,除非你的目标是旧版本的PHP和/或计划分发代码,否则这样做很好)。

答案 1 :(得分:1)

您使用两个字段,这就是它无法正常工作的原因。 试试这个:

<input type="text" value="<?= (isset($_POST["postcode"]) ? $_POST["postcode"] : '') ?>"
id="postcode" name="postcode" size=6 maxlength=6/>