使用三元运算符更改输入属性

Using Ternary Operator to change an input attribute

我的想法是我在一个表单中有一堆输入,当我发送它(到同一页面)时,我想保留选定的选项值。

这就是我如何让它发挥作用的。

<input type="number"  
    <?= isset($_POST['price']) ? 'value="' . $_POST['price'] . '"' : '' ?> 
>

如果先前设置了"price",结果是输入将属性

值="123"

不串联也能写成一样的吗?

我试过了,但是 "'$_POST 似乎进入了彼此这样我就得到 php 错误或者只是在页面上写纯文本。

您可以使用空合并运算符并在值属性中输出您输入的数据:

<input type="number" value="<?= $_POST['price'] ?? '' ?>">

但它不会对用户输入进行转义,因此您不希望这样。

改为:

<input type="number" value="<?= htmlentities($_POST['price'] ?? '') ?>">

或者:

<input type="number" value=
"<?= isset($_POST['price']) ? htmlentities($_POST['price']) : '' ?>"
>