Saut ligne dans variable alert

Fermé
Ju - 23 juil. 2009 à 14:45
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 - 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 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 500
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 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 500
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