Saut ligne dans variable alert [Fermé]

Signaler
-
Messages postés
18535
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
8 avril 2021
-
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,
A voir également:

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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
18535
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
8 avril 2021
4 278
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
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

@++
Messages postés
18535
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
8 avril 2021
4 278
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>";
;-)
Messages postés
567
Date d'inscription
mercredi 15 juillet 2009
Statut
Membre
Dernière intervention
28 juin 2016
61
T'es en php là il me semble, le "alert", c'est du javascript ! écrit javascript:alert(''); !
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
Messages postés
567
Date d'inscription
mercredi 15 juillet 2009
Statut
Membre
Dernière intervention
28 juin 2016
61
Essaye avec des ", plutot que des ', sinon je sais pas désolé !
Messages postés
817
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
7 avril 2010
195
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 ).
Messages postés
567
Date d'inscription
mercredi 15 juillet 2009
Statut
Membre
Dernière intervention
28 juin 2016
61
T'es sur qu'on peut faire des retours avec alert ?
Ça fonctionne, faut pas me demander pourquoi j'ai juste retiré mes \', y a un autre moyen de mettre des apostrophe tu penses?
Pour moi le fait de mettre \u000A pour un retour à la ligne ça a marché
Messages postés
18535
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
8 avril 2021
4 278
"T'es sur qu'on peut faire des retours avec alert ?"
Oui, et zoby44 a donné la solution.