2015-03-04 3 views
0

С $.post отправить данные на внешний PHPJQuery Uncaught SyntaxError: Неожиданный токен НЕЗАКОННО

ли следующий код (измененных имена переменных) text_of_the_ad:"<?php echo htmlspecialchars(substr($arr[0]["SomeText"],0,70), ENT_QUOTES, "UTF-8"); ?>",

text_of_the_ad во внешнем PHP получит с $_POST['text_of_the_ad']

$arr[0]["SomeText"] является текстом из mysql column SomeText

В Chrome Console см. text_of_the_ad:"CITROEN C4 EXCLUSIVE 2.0 HDI DIESEL 5 DOOR HATCH LOW MILEAGE FSH FULL ",

enter image description here

И увидеть ошибки Uncaught SyntaxError: Unexpected token ILLEGAL

Почему ошибка? Может быть, потому что слово FULL находится в следующей строке и после слова FSH нет ",?

ответ

2

JavaScript не поддерживает многострочные строки именно так. Самый простой способ взломать обойти это, вероятно, будет просто заменить буквальный \n с \\n до того вторя:

<?php echo str_replace("\n","\\n",htmlspecialchars(substr($arr[0]["SomeText"],0,70), ENT_QUOTES, "UTF-8")); ?> 
0

Вы можете попробовать использовать символ продолжения строки, которая \. Так что ваш источник будет выглядеть так:

text_of_the_ad:"CITROEN C4 EXCLUSIVE 2.0 HDI DIESEL 5 DOOR HATCH LOW MILEAGE FSH\ 
FULL " 

строк многолинейном в JavaScript должны быть экранированы, но делать это таким образом, не будет всегда производить ваше желаемое поведение - то есть иногда браузеры могут вставлять символы новой строки, иногда они может не.

Смежные вопросы