2017-08-31 14 views
1

JavaScriptを以下のような状況で追加する必要があります。javascriptコードを壊さずに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: unterminated string literal

を示して)(私の文字列は、エスケープせずに改行を越え壊すことができないJavascriptの任意のソリューション

答えて

1

:詳細な回答のため、この質問を参照してください。次のコードを試してください

<?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> 
+0

ありがとう、ありがとう –

1

JS文字列(改行など)でリテラルとして許可されていない文字をエスケープ文字で表現する必要があります。

JSONはJavaScriptのリテラル構文の主題に基づくデータ形式なので、PHPのjson_encode関数を使用して、基本データ型(文字列、数値、配列、連想配列)をすべて正しいエスケープ文字を含むJavaScriptコードに変換できます。

デフォルトでは/にエスケープされるので、安全に文字列</script>を出力できます。 "以来

alert(<?=json_encode($str_alert);?>); 

はJSONに含まれる、それらを手動で追加しないでください。

関連する問題