HTML或PHP的输入框能否存储变量?input中PHP变量$id不解析如何解决
问题解答
输入框可以存储变量,你遇到的输出纯文本$id的问题是语法错误导致的,同时还有一个表单提交的隐藏问题需要注意:
- PHP变量不能直接写在HTML代码中,必须通过PHP输出语句才能把变量值渲染到HTML的属性里,你直接在value属性后写
$id不会被PHP解析,只会当成普通字符串输出。 - 带有
disabled属性的输入框仅做展示使用,表单提交时不会把这个输入框的值传给后端接口。如果你的业务需要把id参数传到后续处理逻辑,建议换成readonly属性,用户无法修改内容的效果和禁用一致,但可以正常提交参数,输出到HTML属性时建议额外用htmlspecialchars转义,避免XSS安全风险。
你只需要把对应input行的代码改成如下内容即可:
<input type="text" readonly name="id" value="<?php echo htmlspecialchars($id); ?>" >
如果你不需要用户看到id参数,也可以单独加一个隐藏输入框存值,和展示用的输入框互不影响:
<!-- 隐藏的提交用输入框 --> <input type="hidden" name="id" value="<?php echo htmlspecialchars($id); ?>" > <!-- 给用户看的禁用展示输入框 --> <input type="text" disabled value="<?php echo htmlspecialchars($id); ?>" >
如果你要实现最初的展示书籍标题的需求,把上述代码中的$id替换为$title即可。
内容的提问来源于stack exchange,提问作者Warren Chan
相关产品推荐
相关产品推荐

