使用PHP设置HTML属性


Set an HTML attribute with PHP

我想构建一个简单的服务器端验证,但我遇到了一个问题:

当用户提交的数据不正确时,我希望在输入中保留正确的数据(例如:如果我有两个字段,用户名和电子邮件,但只有电子邮件无效,则应保存用户名)。

在下面的代码中,我试图仅在变量$validUser初始化时创建属性值。否则,我不想要值属性。代码不起作用。

   <input type="text" placeholder="Username" name="username" id="username"
                   <?php
                      if ($validUser) echo "value='$validUser'";
                   ?>
    />

我该怎么办?

当用户提交数据时。。。

你的意思是有$_POST或$_GET请求吗?如果是这样,这将更有意义

<input id="username"
       name="username"
       placeholder="Username"
       value="<?php echo isset($_GET['username']) ? $_GET['username'] : '' ?>">

如果$_GET['username']不存在,你只会得到value="",这是一个非常好的


通过PHP手工编写HTML完全是一件苦差事。为了解决这个问题,我编写了一个名为htmlgen的实用程序,它使更容易忍受

<?php
use function htmlgen'html as h;
h('input#username', [
  'name'=>'username',
  'placeholder'=>'Username',
  'value'=>isset($_GET['username']) ? $_GET['username'] : ''
]);
// => <input id="username" name="username" placeholder="Username" value="someuser">