使用用户提交的内容重新填充 textarea(使用 ASCII 代码并且在某些字符之前没有附加的正斜杠)
Posted
技术标签:
【中文标题】使用用户提交的内容重新填充 textarea(使用 ASCII 代码并且在某些字符之前没有附加的正斜杠)【英文标题】:Repopulating textarea with EXACTLY what the user submitted (with ASCII codes and without additonal forward slashes before some characters) 【发布时间】:2012-06-30 14:31:39 【问题描述】:我有一个文本区域,我需要能够接收包括 / 和 ' 在内的字符以及 ASCII 中的特殊字符。它做得很好,并通过 POST 方法将数据发送到 php 页面。
然后我只需将文本区域重新填充
<?php echo isset($F_Text) ? $F_Text : '' ?>
在 textarea 标签之间 ($F_Name = $_POST["F_Name"]),目的是让用户可以更改他们输入的内容并重新提交。
但是每次重新填充表单时都会出现两个问题。在 ' 等字符之前添加正斜杠,并且 ASCII 字符作为符号而不是代码打印出来。这基本上破坏了页面的其余部分(提交继续由一些 javascript 处理)。
我想不出任何方法来保持 ASCII 代码就是这样,代码,而不是符号。
另外,我刚刚注意到所有 $ 符号也都丢失了,我可以理解,但我需要它们留下来!
我需要表单来准确显示用户最初输入的内容。有什么想法吗?
【问题讨论】:
【参考方案1】:你可以试试:
<?php echo isset($F_Text) ? htmlentities(stripslashes($F_Text)) : '' ?>
希望对你有帮助:)
【讨论】:
这确实解决了我的部分问题(谢谢),即添加的斜杠。我现在注意到所有 $ 符号都丢失了,我需要保留这些符号。 您能否发布在发布 $ 或任何其他 ASCI 代码时获得的重新填充值是多少 好的,所以表单采用 jqmath (mathscribe.com/author/jqmath.html)。例如,如果“$$t'=γ(t-vx/c^2)$$$$x'=γ(x-vt)$$$$y'=y $$$$z'=z$$" 输入,"t'=γ(t-vx/c^2)x'=γ(x-vt)y'=yz' =z" 被重新填充。我正在考虑在提交表单时用其他东西替换 $ 符号,然后在重新填充表单时再次替换它们。 ASCI 代码现在看起来还不错。 请注意,$ 符号在回显时仍然存在,只是不在表单中。 我看到这里完全没有 $ 符号。我尝试在我创建的表单中完美地使用输入的代码重新填充它。我认为在处理数据时会有一些东西。你用什么替换 $ 符号【参考方案2】:我的猜测是你首先必须打开magic quotes,然后使用htmlspecialchars
以避免你的变量弄乱你的html,然后确保所有内容都在utf8中,以便保留所有特殊字符(取决于你认为的 ASCII 字符...)。
你的 php echo 语句是:
<?php echo isset($F_Text) ? htmlspecialchars($F_Text) : '' ?>
【讨论】:
感谢您的回复。我所指的 ASCII 字符大多是希腊字母,但根据 Sabari 的回答不再是问题。唯一普遍存在的问题是 $ 符号丢失了。以上是关于使用用户提交的内容重新填充 textarea(使用 ASCII 代码并且在某些字符之前没有附加的正斜杠)的主要内容,如果未能解决你的问题,请参考以下文章
Node.js:如何在提交时读取用户选择选项并在 textarea 中提供文件内容
如何使用 jQuery 重新填充表单提交时隐藏的 CSV 字段