使用Javascript处理从数据库到HTML的NL2BR

时间:2011-07-11 21:55:30

标签: php jquery replace nl2br

我似乎很难显示HTML。哈哈,让我解释一下。

我有一个用于“评论”的模板文件......它告诉我们去哪里等等。添加,更新和选择任何“评论”时

IE:

<div class='comment'>
   <div>{$name}</div>
   <div>{$comment}</div>
</div>

因此,在我的评论中,我需要从包含\ n

的数据库中提取COMMENT

所以我这样做。

$comment = nl2br($comment);
<div class='comment'>
   <div>{$name}</div>
   <div>{$comment}</div>
</div>

这确实有效......但是当我通过jQuery进行UPDATE时,我会使用

$("#"+ target +"").replaceWith(responseText);

并且responseText包含所有HTML ...但是有些原因,它仍然包括\ n ...而不是

我不知道这是Javascript或渲染问题的限制。只是不知道还有什么去这里......有什么想法吗?

2 个答案:

答案 0 :(得分:0)

在php文件中,您将使用jQuery获取注释,在回显数据之前尝试执行以下操作

$comment=str_replace('\n\r', '<br />', $comment);
$comment=str_replace('\n', '<br />', $comment);
echo $comment;

答案 1 :(得分:0)

嗯,这有点奇怪,有些问题我没有完全测试,对不起可能没有澄清。但是mysql_real_escape_string()导致了\ n存储在数据库中的问题。

我正在考虑使用此功能。在php.net的网站上找到

function mysql_escape_mimic($value) {
        if(isset($value)) 
        {
            if(is_array($value)) {
                return array_map(__METHOD__, $value);
            }

            if(!empty($value) && is_string($value)) {
                //return str_replace( array('\\',   "\0",  "\n",  "\r",   "'",  '"',  "\x1a"), 
                //                  array('\\\\', '\\0', '\\n', '\\r', "\\'", '\\"', '\\Z'), $value);

                return str_replace( array('\\',   "\0",  "\r",   "'",  '"',  "\x1a"), 
                                    array('\\\\', '\\0', '\\r', "\\'", '\\"', '\\Z'), $value);
            }

            return $value;
        }
    }