使用 PHP 变量使用 jQuery 添加文本区域内容


add textarea content with jquery using php variable

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

哎呀,所以我的问题是我有一个用jquery生成的文本区域,如下所示:

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

但是我也想用内容填充这个文本区域(当然,当内容存在时),使用 php。 sp 现在我的代码如下所示:

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

所以这样做的问题是,当我运行这段代码时,javascript 会自动在该输入变量中填充文本区域的内容,并且因为有不止一行它会中断,所以我收到一个错误,说"意外令牌非法"

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

感谢任何建议!

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

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

在您的情况下,它将是这样的:

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

另请参阅以下问题:将 PHP 字符串传递给 JavaScript 变量(并转义换行符)

删除它

不是PHP变量$,请尝试以下操作:

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

问题是语法错误,您需要一个>来关闭 PHP 标签:

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

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

试试这个:

var $input = $('<?php echo "<textarea name='"somename'">".htmlentities($variable[0]['something'])."</textarea>" ?>');