2017-08-31 100 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

請給我任何解決方案

回答

1

添加\逃避PHP \n。嘗試以下代碼

<?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,你不應該手動添加。

相關問題