我有一个带文本框的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/>
似乎没有用。
答案 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/>