Работа с NL2BR из базы данных в HTML с помощью Javascript - PullRequest
1 голос
/ 12 июля 2011

Кажется, у меня проблемы с отображением HTML. Хаха, позволь мне объяснить.

У меня есть 1 файл шаблона для "комментариев" ... и он рассказывает, куда идти, и тому подобное в HTML. При добавлении, обновлении и выборе любого из «комментариев»

IE:

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

Так что в моем комментарии мне нужно извлечь КОММЕНТАРИЙ из базы данных, которая включает в себя \ n

Итак, я иду так.

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

И это работает ... Но когда я делаю ОБНОВЛЕНИЕ через jQuery, я использую,

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

И текст responseText включает в себя весь HTML ... но по какой-то причине он все еще включает \ n ..., а не

Я не знаю, является ли это ограничением для Javascript или проблемами с рендерингом. Просто не уверен, куда еще идти сюда ... Есть мысли?

Ответы [ 2 ]

0 голосов
/ 12 июля 2011

Ну, это было немного странно, были некоторые проблемы, которые я не полностью протестировал, и извините за, возможно, не прояснение. Но 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;
        }
    }
0 голосов
/ 12 июля 2011

В php-файле, который вы получаете с помощью jQuery, попробуйте сделать следующее, прежде чем возвращать данные

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