0

可能重复:
将 PHP 字符串传递给 Javascript 变量(包括转义换行符)

Hy,所以我的问题是我有一个用 jquery 生成的 textarea,如下所示:

$var input = $('<textarea name="somename"></textarea>');
$(something).after(input);

但我也想用 php 填充这个 textarea 内容(当然存在内容时)。sp 现在我的代码如下所示:

$var input = $('<textarea name="somename"><?=$variabel[0][something];?</textarea>');
$(something).after(input);

所以问题在于,当我运行此代码时,javascript 会自动填充该输入变量中 textarea 的内容,并且因为它中断了不止一行,所以我收到一条错误消息“意外令牌非法”

我希望我解释得很好,所以我需要以某种方式将 textarea 的内容放在生成的 textarea 中,但是以一种我的输入不会中断的方式。

感谢您的任何建议!

4

4 回答 4

0

删除$它不是 php 变量,试试这个:

var input = $('<textarea name="somename"></textarea>');
$(something).after(input);
$('textarea[name="somename"]').val( <?php echo $variabel[0]['something']; ?> )
于 2012-06-14T08:08:39.437 回答
0

您可以使用 php 函数 json_encode() 在输出 PHP 变量之前对其进行编码。例如,它将换行符转换为 \n。有关该功能的更多详细信息,请参见此处

http://php.net/manual/en/function.json-encode.php

在你的情况下,它会是这样的:

var input = '<textarea name="somename"><?= json_encode($variabel[0][something]); ?></textarea>';

另请参阅以下问题:Pass a PHP string to a JavaScript variable (and escape newlines)

于 2012-06-14T08:11:35.487 回答
-1

试试这个:

var $input = $('<?php echo "<textarea name=\"somename\">".htmlentities($variable[0]['something'])."</textarea>" ?>');
于 2012-06-14T08:07:59.947 回答
-1

问题是语法错误,您需要>关闭 PHP 标记:

$var input = $('<textarea name="somename"><?=$var;?></textarea>');

使用 Chrome 内置的控制台可以轻松检测到此错误。或者,如果您使用 Firefox,您可以使用名为Firebug的扩展。

于 2012-06-14T08:08:40.483 回答