Мне нужно добавить перерыв в JavaScript с помощью следующей ситуации.
<?php
$str_alert = "";
if(isset($case1)){
$str_alert .= "have case1 \n";
}
if(isset($case2)){
$str_alert .= "have case2 \n";
}
if(isset($case3)){
$str_alert .= "have case3 \n";
}
if(!empty($str_alert)){
?>
<script type="text/javascript" >
$(document).ready(function(){
alert("<?=$str_alert?>");
});
</script>
Это нарушает код JavaScript и показывает ошибку
SyntaxError: неопределенный строковый литерал
Пожалуйста, дайте мне какое-нибудь решение
3 ответа
Добавьте \
для выхода \n
в php. Попробуйте следующий код
<?php
$str_alert = "";
if(isset($case1)){
$str_alert .= "have case1 \\n";
}
if(isset($case2)){
$str_alert .= "have case2 \\n";
}
if(isset($case3)){
$str_alert .= "have case3 \\n";
}
if(!empty($str_alert)){
?>
<script type="text/javascript" >
$(document).ready(function(){
alert("<?=$str_alert?>");
});
</script>
Строки Javascript не могут разбивать символы новой строки без escape (). Смотрите этот вопрос для подробных ответов:
Как разбить строку на несколько строк кода в JavaScript?
Вы должны представлять символы, которые не допускаются как литералы в строках JS (например, новые строки) с помощью escape-символов.
Поскольку JSON - это формат данных, основанный на предмете буквального синтаксиса JavaScript, вы можете использовать функцию PHP json_encode
для преобразования любого базового типа данных (строки, числа, массива, ассоциативного массива) в код JavaScript со всеми правильными управляющими символами ,
По умолчанию он даже экранирует /
, поэтому вы можете безопасно вывести строку </script>
.
alert(<?=json_encode($str_alert);?>);
Так как "
будет включен в JSON, вам не следует добавлять их вручную.
Похожие вопросы
Связанные вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.