当PHP值有换行符时,JQuery val()换行符会停止javascript

时间:2015-08-19 14:08:53

标签: javascript php jquery html

考虑以下一行javascript并插入一些内嵌的PHP。

 $("#suggestion").val("<?php echo $note; ?>");

其中$ note是来自mysql数据库的值,来自 text 类型的字段。如果$ note是没有引号且没有换行符的纯文本,则javascript正常工作,并且正确填充id为#suggestion的文本区域。

问题1)如果$ note有换行符,则生成的javascript完全中断并完全停止执行。带有换行符的结果javascript如下所示: enter image description here

问题2)另外,如果$ note有引号,我使用

 htmlentities($note, ENT_QUOTES) 

生成的文本区域有&quot;而不是实际字符。不使用htmlentities并留下裸引号也完全破坏了javascript。

我如何才能获得它,以便在有新行时javascript不会中断,以便textarea不会显示实体而是显示真实字符?

编辑: 这是一个非常具体的问题,而不是一般的“如何使用javascript和php来回传递变量”。我有基础知识,但遇到了一个特定的问题换行停止我之前从未遇到过的javascript,所以我不相信这是引用问题的重复。将此标记为重复也可以说“请在询问有关编码的问题之前,先了解有关编码的所有信息。”或者该页面上的哪个答案属于我从mysql文本字段中断行jquery val()以及执行的其余javascript的换行符。

由于我不能回答,因为它标有重复,我会在这里给出答案。 在输出变量之前,我必须在我的php中执行此操作:

 $note = str_replace("\r\n", "\\n", $note);
 $note = str_replace('"', '\"', $note);

感谢那些指出我正确方向的评论员。

0 个答案:

没有答案