更容易重新填充表单数据的方法?

时间:2013-11-19 21:25:35

标签: php forms

好的,我想知道在提交验证后是否有更简单的方法重新填充表单?

以此为例:

<input type="text" name="username" value="$_POST['username']" />

但是,它会自动说“未定义索引:用户名”

我们必须这样做:

if(isset($_POST['username'])) echo $_POST['username']

哪个非常难看..有没有办法做到这一点?欢迎举例。

4 个答案:

答案 0 :(得分:0)

你可以这样做:

$username = isset($_POST['username']) ? $_POST['username'] : "";
echo "<input type=\"text\" name=\"username\"
         value=\"".htmlspecialchars($username)."\" />"; // VERY important!

答案 1 :(得分:0)

您可以将其全部隐藏在可重复使用的功能中:

function showValue($key) {
    $value = '';
    if (isset($_POST[$key])) {
        $value = $_POST[$key];
    }
    return $value;
} 

然后使用它:

<input type="text" name="username" value="<?= showValue('username') ?>" /> 

答案 2 :(得分:0)

有三种想法:

  1. 构建一个辅助类/函数,它将键作为参数并调用myhelper('username')myhelper显然会包含isset语句并回显或返回值(如果存在),否则null
  2. 略短的表格:echo isset($_POST['username']) ? $_POST['username'] : '';
  3. (不要这样做)禁用服务器上的通知并使用它(这只适用于noobs,我会说)

答案 3 :(得分:0)

辅助功能方式,尽可能短:

<?php
print gv("u"); // Prints the value of $_POST['u']

function gv($n){echo(isset($_POST[$n]))?$_POST[$n]:"";}
?>