2009-11-17 8 views
1

Je suis en train de générer une chaîne en PHP, puis en passant finalement cette chaîne dans une boîte d'alerte Javascript, mon problème est que je ne peux pas ajouter de sauts de ligne dans ma boîte d'alerte.Impossible d'ajouter de nouvelles lignes dans la zone d'alerte JavaScript?

Mon code se présente comme suit

$str = "This is a string\n"; 
$alert = $str."This is the second line"; 

    if(!empty($alert)){ 
        ?> 
         <script type="text/javascript"> 
          $(document).ready(function() { 
           alert('<?=$alert?>'); 
          }); 
         </script> 
        <?php 
       } 

Je reçois l'erreur

chaîne Undeterminnated littérale

Si je supprime \ n de chaîne, elle fonctionne à 100% mais sans sauts de ligne

Répondre

19

Cela se produit parce que PHP interprète le \ n avant JavaScript a la chance de, entraînant une réelle saut de ligne dans le code Javascript. Essayez

\\n 
+0

oooo piqué à la poste! –

+0

Cela a du sens, j'ai essayé cela et cela a fonctionné pour moi, que Pekka – Roland

+1

En fait, cela ne suffit généralement pas, car la chaîne peut contenir des guillemets et d'autres caractères qui rendent le code invalide. Vous devriez échapper à la chaîne. Voir http://stackoverflow.com/questions/168214/pass-a-php-string-to-a-javascript-variable-including-escaping-newlines pour savoir comment faire. – Amnon

4

Vous devez changer str $ à

$str = "This is a string\\n"; 

de sorte que le \ n est transmis au javascript.

Questions connexes