【发布时间】:2019-02-08 23:46:36
【问题描述】:
【问题讨论】:
-
请edit您的问题将您的代码添加为文本,而不是图像。您可以使用类似
{ }的按钮或使用 Control + K 轻松格式化代码。
【问题讨论】:
{ } 的按钮或使用 Control + K 轻松格式化代码。
我想你忘记了双引号。试试
<textarea
placeholder="<?php echo htmlentities($comments); ?>"
rows="6"
cols="35"
name="comments"
maxlength="20"
></textarea>
【讨论】:
你应该使用:
placeholder="<?php echo htmlentities($comments); ?>"
如果您的 $comments 变量包含空格或引号,它们将被转义。
您可以查看 htmlentities 文档here。
【讨论】:
只是添加到其他答案的一点解释:
placeholder 是一个属性。属性值可以不加引号,但如果它包含任何空格,则只有字符串中的第一个单词会被解释为属性值。之后的任何其他词都将被解释为附加属性。如果您查看页面源代码,您会看到整个$comments 字符串都在那里。
<textarea placeholder=word other words></textarea>
看看这里的语法高亮。注意“其他”和“单词”如何像“占位符”一样是红色的?
<textarea placeholder='word other words'></textarea>
<textarea placeholder="word other words"></textarea>
现在它们是价值的一部分。
Either single quotes or double quotes are fine.你只需要一些东西来将单词组合在一起,这样浏览器就不会认为你给了它额外的属性。
【讨论】:
问题应该是:
<textarea placeholder="<?php echo $comments; ?>">...
好像有人想让我解释一下。要了解这里发生的事情是您正在混合两种语言。在一层有 HTML。在发送到浏览器之前,它会通过 PHP 处理器发送。处理完后,在不带引号的原始问题上以及在浏览器进行解析之前,它将看起来像这样。
<textarea placeholder=word other words>...
浏览器自动引用 HTML 并将其解释为
<textarea placeholder="word" "other" "words">...
这就是为什么您需要在 PHP 代码周围添加引号的原因。这就是为什么它只显示第一个值。当它有引号时,浏览器会将字符串中的所有间隔元素合并为占位符的值。
<textarea placeholder="word other words">...
让我知道是否需要进一步澄清或是否有更好的解释方式。
【讨论】: