首页 > 解决方案 > 输入字段被呈现为纯文本

问题描述

我使用 PHP 来呈现页面。我有回声语句,例如

echo "<input type=\"text\" name=\"numPlate\" id=\"numPlate\" onblur=\"caps(this.id);\" $focusPlate required value=\"" . isset($_POST['numPlate']) ? $_POST['numPlate'] : "" ."\">";

但该值作为纯文本而不是在输入字段中输出。如果我取出三元,那么输入字段正在被渲染,这告诉我导致问题的原因,但我真的不明白为什么。问题是我在这个页面上有大约 20 个其他字段以类似的方式,因此将这些语句中的每一个评估为一个变量并将相应的变量输入到 value 属性中并不是一个非常干净的解决方案。

还有其他方法可以实现吗?谢谢

编辑:

呈现的html:

<div class="row"><label for="plate">Rendszám*</label>GMS245</div>

如您所见,字符串只是一个文本。

标签: phphtml

解决方案


我测试了它,我相信我的第二个建议可以解决它。将三元组括在括号中。根据我的测试,它试图评估对三元的真实响应,而不是将其设置为值或忽略它。我还用单引号替换了内部引号以清理代码,同时仍然允许评估变量。

echo "<input type='text' name='numPlate' id='numPlate onblur='caps(this.id);' $focusPlate required value='" . (isset($_POST['numPlate']) ? $_POST['numPlate'] : "") ."'>";

推荐阅读