Я использую генератор приложений PHP (Scriptcase, если он имеет значение) и создаю веб-страницу, которая использует комбинацию ванильных запросов JS и SQL.
У меня возникла проблема, и, наконец, я знаю,причина.
У меня есть форма, где у вас есть большое поле типа NVARCHAR (max), и в этом поле вы можете написать текст, а когда я использую return (я иду на следующей строке), то чтослучается, мой код JS ломается.
Если я удаляю все новые строки, то это работает.
Как вы можете видеть из отладчика Chrome, после разрыва строки код меняет цвет так,это означает, что это больше не строка:

вы видите на картинке, что строка перестает быть красной, поэтому я думаю, что она рассматривается как код.
Как мне решить эту проблему?
Это код JS:
foreach({rsg} as $key=>$step) {
$var_nodes_array .=
'{
"id": "step_'.$step[0].'",
"title": "'.$step[1].'",
"class": "bgwhite,test_'.$step[0].',boards",
"item": [
';
// Deals
$sql_deals = "
SELECT
ItemID,
ItemName,
ItemDescr
FROM TblItem"
sc_lookup(rsd, $sql_deals);
foreach({rsd} as $key=>$val) {
// Building the nodes
$var_nodes_array .= '
{
"id": "'.$val[0].'",
"title": "'.$val[1].'",
"class":"color2",
"drop": function(el){
save(el.dataset.eid, "updstep", $(this).closest("div[data-id]").attr("data-id"));
},
"items": [
{
"title": "'.$val[2].'",
"type": "textEdit",
"id": "tit_'.$val[0].'",
"class": "titleKanban"
}
]
},';
}
Здесь часть ошибки находится в конце, в массиве с именем Items []., есть поле "title", которое берет значение базы данных из ItemDescription (которое является NVARCHAR (макс.), о котором я говорилt).
Так что мне нужен способ избежать этого, если в этом поле базы данных есть новые строки, чтобы как-то их здесь не учитывать, какая-либо подсказка, как?
Спасибо
РЕДАКТИРОВАТЬ: небольшое обновление, если в моей форме, в поле описания, вместо того, чтобы разбивать строку нажатием ENTER, я ставлю, и не нажимаю Enter никогда, тогда текст будет отображаться правильно, с переносами строк ине сломает JS, но это не хорошее решение, я не могу каждый раз, когда мне нужен разрыв строки, поставить этот тег!Таким образом, в основном, когда я использую ENTER и отправляю поле, оно отправляется в БД с этими разрывами строк, а когда код JS получает значение этого поля, он ошибается из-за разрывов строк
EDIT2: Я пытался использовать $val_test = str_replace("\n", "\\n", $val[1]);
, как подсказывает ответ, но вывод таков, что JS все еще не работает, но теперь он добавляет \ n к каждой новой строке, как вы можете видеть на рисунке
