使用用户提交的内容重新填充 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 代码并且在某些字符之前没有附加的正斜杠)的主要内容,如果未能解决你的问题,请参考以下文章

JQuery Ajax 使用所需的 textarea 完成

Node.js:如何在提交时读取用户选择选项并在 textarea 中提供文件内容

如何防止 textarea 内容溢出到填充中?

如何使用 jQuery 重新填充表单提交时隐藏的 CSV 字段

有没有办法在不使用 PHP 或 JavaScript 的情况下让 textarea 拉伸以适应其内容?

JavaFX SceneBuilder:如何让textarea填充窗格?