Форматирование PHP текста для использования в переменной Javascript - PullRequest
0 голосов
/ 11 января 2020

Мне тяжело покрывать все области специальными символами, которые могут разбить переменную в JavaScript. Поэтому для контекста я извлекаю информацию из базы данных и затем отображаю ее в переменной JavaScript, которая будет отображать данные, которые представляют собой текст, который был введен пользователем и сохранен в таблице.

Переменная php - это буква $, см. Код ниже, который я использовал, чтобы не допустить ее взлома

$letter = $order["letter"];
$letter = str_replace("'", "\'", $letter);
$letter = str_replace("\"", "\"", $letter);
$letter = str_replace("\r\n", "\\n",$letter);

Ниже приведена строка кода, где я пытаюсь ее декодировать так, что он будет отображаться в формате html

$(".fa-eye").click(function () {
            //clear pager html
            $(".pager").html('');
            $("#text-pager").html('<p class="text-left prevdescription"></p>');
            //clear pager html
            var parentTd = $(this).parent().parent('td');
            var letterContent = parentTd.find('#letterTxt').val();
            var pagerHtml = '<p class="controls"><a class="tp-control-arrow-left unactive"><span><</span></a><a class="tp-control-arrow-right"><span>></span></a><ul class="pager"></ul></p>';
            $(".prevdescription").html(letterContent.replace(/\r?\n/g, '<br/>'));

Он производит вывод на изображении ниже ... что я пропускаю?

You may write me down in history\nWith your bitter, twisted lies,\nYou may tread me in the very dirt\nBut still, like dust, I\ ............. This is what it outputs. not showing all of the content.

enter image description here

1 Ответ

0 голосов
/ 11 января 2020

Используйте json_encode(), он преобразует значение PHP в эквивалентный JavaScript литерал.

<script>
var letter = <?php echo json_encode($order['letter']); ?>;
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...