我正在使用PHP渲染页面。我有
之类的echo语句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>
如您所见,字符串只是文本。
答案 0 :(得分:2)
我测试了一下,我相信我的第二个建议可以解决它。用括号括住三元。从我的测试中,它试图评估对三进制的真实响应,而不是将其设置为值或忽略它。我还用单引号替换了内部引号,以清理代码,同时仍允许对变量进行求值。
echo "<input type='text' name='numPlate' id='numPlate onblur='caps(this.id);' $focusPlate required value='" . (isset($_POST['numPlate']) ? $_POST['numPlate'] : "") ."'>";