Saut ligne dans variable alert

Fermé
Ju - 23 juil. 2009 à 14:45
avion-f16
Messages postés
18737
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 mai 2022
- 24 sept. 2010 à 16:56
Bonjour,

Je souhaiterais sauter des lignes dans mon alert à partir d'une variable dans laquelle est stockée:

$attention = 'Vous avez réussi à: \n -ajouter nom \n -ajouter prenom';

Seulement le alert(attention) écrit les \n plutôt que de sauter des lignes. si vous savez comment je peux faire pour y parvenir en conservant le passage par variable...

Merci,

9 réponses

Pour effectuer un saut de ligne avec la méthode alert() il suffit d'insérer les 3 caractères suivants dans le texte à afficher : \\n

...rien ne vaut un bon vieil exemple:

<script>

alert('- message de la ligne 1\\n- Message de la ligne 2');

</script>

NB : vous pouvez remplacer les simples quotes dans la méthode alert() par des doubles quotes, ca marche aussi bien
3
avion-f16
Messages postés
18737
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 mai 2022
4 388
23 sept. 2010 à 17:18
Le signe de retour à la ligne, c'est \n
Si tu mets \\n , le premier backslashes annule le caractère spécial qui suit, donc ton script affiche simplement :
- message de la ligne 1\n- Message de la ligne 2
0
Tu as en partie raison avion-f16. Tout dépend de quel coté le script est exécuté. En tant que développeur .NET je note que la plupart des développements informatiques s'exécutent coté serveur et j'ai donc dit d'écrire \\n, mais je vais préciser la réponse :

1er cas : coté client
le script javascript est inséré directement dans le code source d'une page html, qui s'exécute côté client, alors il faut écrire \n, par exemple :

<html>
<head>
</head>

<body>
<script type='text/javascript'>
alert('- message de la ligne 1\n- Message de la ligne 2');
</script>
</body>

</html>

2nd cas : coté serveur
Le script javascript est inséré dans du code C# ou VB.NET qui s'exécute coté serveur (dans le code behind d'une page ASPX par exemple), alors dans ce cas il faut écrire \\n, par exemple :

using System;

namespace ApplicationTest.UI.Pages
{
public partial class test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string script="<script>alert('- message de la ligne 1\\n- Message de la ligne 2');</script>";
this.Page.ClientScript.RegisterStartupScript(this.Page.GetType(), "alert", script);
}
}
}

et bien sûr le code javascript généré chez le client contiendra \n, dans le détail :

<script>alert('- message de la ligne 1\n- Message de la ligne 2');</script>

EN CONCLUSION :
le script coté client ne doit contenir que \n, alors que côté serveur (la majeure partie de la programmation se fait quand même de ce coté) en C# et VB.NET il doit contenir \\n... pour ce qui est des autres langages majeurs coté serveur (PHP, JAVA, etc...) je ne suis pas spécialiste mais certainement que \n échoue et qu'il faut le concaténer avec un symbole précisant au compilateur que l'on souhaite générer à la volée du javascript contenant uniquement la séquence \n

J'espère avoir éclairé l'utilisation de la méthode javascript alert() cotés client/serveur

@++
0
avion-f16
Messages postés
18737
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 mai 2022
4 388
24 sept. 2010 à 16:56
Je n'ai pas relu le sujet et j'ai oublié que ça se passait avec du PHP, et pas en JS "pur".
Toutes mes excuses pour cette perte de temps.

PS: histoire de me déculpabiliser un peu, tu aurais quand même pu mettre la partie qui montre que c'est une chaine dans un autre langage de programmation, en VB.net :
string script="<script>alert('- message de la ligne 1\\n- Message de la ligne 2');</script>";
;-)
0
Heryu
Messages postés
567
Date d'inscription
mercredi 15 juillet 2009
Statut
Membre
Dernière intervention
28 juin 2016
62
23 juil. 2009 à 14:46
T'es en php là il me semble, le "alert", c'est du javascript ! écrit javascript:alert(''); !
0
Oui c'est ce que j'ai fait, le alert s'execute parfaitement mais il n'y a pas de sauts de ligne.
Au lieu de d'interpréter les \n comme des sauts de ligne il les écrit comme du texte.

Merci pour ton aide
0
Heryu
Messages postés
567
Date d'inscription
mercredi 15 juillet 2009
Statut
Membre
Dernière intervention
28 juin 2016
62
23 juil. 2009 à 14:50
Essaye avec des ", plutot que des ', sinon je sais pas désolé !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zoby44
Messages postés
817
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
7 avril 2010
197
23 juil. 2009 à 14:52
Salut, oui c'est du javascript, mais tu peux le générer en php. Si tu fait par exemple :
<?php
$attention = 'Vous avez réussi à: \n -ajouter nom \n -ajouter prenom'; 
echo 'alert("'.$attention.'")';
?>

Mais sinon, pour ton problème, remplace \n par \u000A, ça devrais fonctionner.
(trouvé sur http://www.allhtml.com/forums/posts_list/topic:504288 ).
0
Heryu
Messages postés
567
Date d'inscription
mercredi 15 juillet 2009
Statut
Membre
Dernière intervention
28 juin 2016
62
23 juil. 2009 à 14:52
T'es sur qu'on peut faire des retours avec alert ?
0
Ça fonctionne, faut pas me demander pourquoi j'ai juste retiré mes \', y a un autre moyen de mettre des apostrophe tu penses?
0
Pour moi le fait de mettre \u000A pour un retour à la ligne ça a marché
0
avion-f16
Messages postés
18737
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 mai 2022
4 388
15 janv. 2010 à 18:35
"T'es sur qu'on peut faire des retours avec alert ?"
Oui, et zoby44 a donné la solution.
0