【问题标题】:Inserting text with new lines into a textarea将带有新行的文本插入文本区域
【发布时间】:2012-06-26 20:16:07
【问题描述】:

我正在尝试将数据从数据库插入到文本区域。我不知道如何制作新的线条。我正在使用 jquery 的 val() 函数来设置 textarea 内容。我放了 \n 但它只是显示在 textarea 中而不是换行符。我也试过 \r\n 得到相同的结果。

更新

好的,我注意到如果我只是在 val() 函数中用 \n 硬编码一个字符串,它可以工作。所以问题一定出在我通过 ajax 从 php 返回的字符串的某个地方。我正在使用 $.ajax 调用从 mysql 获取值的 PHP。关于出了什么问题的任何想法?

HTML

<textarea id='topContent' class='divContent' rows='8'></textarea>

JAVASCRIPT

<script>
$('#dialogDiv').on('submit', '#insertMacroForm', function(){
    $.ajax({
        url: 'index.php',
        data: 'request=loadMacro2&id='+$('#macroSelection').val(),
        success: function(msg){
            $('#topContent').val(msg);
        }
    });
    return false;
});
</script>

PHP

<?php
$query = 'SELECT * FROM POEMACRO WHERE POEID=' . db2_escape_string($_GET['id']);
$result = db2_exec($conn, $query) or die(db2_stmt_errormsg());
while($row = db2_fetch_assoc($result)){
    print $row['POEMACRO'];
}
?>

【问题讨论】:

标签: jquery html


【解决方案1】:
$('textarea').val('line1\nline2')

这很好用。 您需要在 JavaScript 字符串中使用 \n
如果这个字符串是在服务器上用 PHP 形成的,你可能需要像 json_encode() 这样的东西来将字符串格式化为 JavaScript 格式。

【讨论】:

  • 字符串由php组成,通过ajax返回。我刚刚尝试了 json_encode,现在在 textarea 中 \n 显示为 \\n
  • 您的回答使我朝着正确的方向前进。我最终在 php 中的字符串周围添加了双引号以使其成为正确的 json 字符串(不使用 json_encode)然后我不得不将 $.parseJSON(msg) 添加到我的 javascript。
【解决方案2】:

您需要解析文本并将 \n 转换为中断标记
,然后再将其传递给 textarea。

【讨论】:

  • 标签不允许在 textarea 元素中,按照 HTML 语法。
  • 不知道。看到它被广泛使用。谢谢@Jukka
  • 虽然它们没有被解释,所以我很好奇你在哪里看到的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-06
  • 2016-09-29
  • 1970-01-01
  • 2013-04-14
相关资源
最近更新 更多