有没有更好的方法来更改 PHP 元素的样式?

Is there any better way to change the style of an element with PHP?

是否有更好的方法来实现相同的结果,即在外部使用 PHP 而不是在实际的 HTML 标签内?这种方法很好用,但是像这样把PHP标签放在HTML标签里面好像有点不方便。尤其是点击提交后需要调整多个属性的时候。或者更糟的是,同一个表单的多个元素的多个属性!

作为一个绝对的 PHP 初学者,我不知道...

<form method="post" action="">
  <input type="text" name="input" value="
    if (isset ($_POST['submit']) ) {
      $input = $_POST['input'];
      echo $input;
    }
  " />
  <input type="submit" name="submit" />
</form>

请注意: 上面的脚本可能有问题,因为我没有在外部测试就直接写到这个论坛post。我只是想指出它的想法:Adjusting the style, value or any other attribute using PHP only.

如果您不想将 PHP 逻辑放在 HTML 代码中,您可以在 HTML 代码之上编写 php 逻辑并存储生成一个变量,然后您可以将其放入 HTML 代码中。

例如:

<?php 
$input = '';
if (isset ($_POST['submit']) ) {
  $input = $_POST['input'];
} 
?>
<form method="post" action="">
 <input type="text" name="input" value="<?php echo $input; ?>" />
 <input type="submit" name="submit" />
</form>

如果您需要缩短代码,可以使用短标签

<form method="post" action="">
  <input type="text" name="input" value="<?= isset ($_POST['submit']) ? $_POST['submit'] : '' ?>" />
  <input type="submit" name="submit" />
</form>

您可以在渲染前提供您需要的一切

<?php
    $html = [
         'forms' => [
              'myForm' => [
                    'action' => '',
                   'method' => 'POST',
                   'myInput' => [
                        'value' => isset ($_POST['submit']) ? $_POST['submit'] : ''
                    ],
              ],
         ],
    ];
?>
<form method="<? $html['forms']['myForm']['method'] =?>" action="<?= $html['forms']['myForm']['method'] ?>">
  <input type="text" name="input" value="<?= $html['forms']['myForm']['myInput']['value'] ?>" />
  <input type="submit" name="submit" />
</form>

还有一些工具可以让您在 html 中使用 php 更具可读性。 Using PHP as a template engine