IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[Javascript]Comment faire un retour chariot dans une chaîne


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 10
    Points : 7
    Points
    7
    Par défaut [Javascript]Comment faire un retour chariot dans une chaîne
    Comment faire un retour chariot dans une chaîne contenu dans un tableau ?

    Voici la ligne de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    interpretation_inclusion[0][0] = new Array("Voici le 1er paragraphe [quoi mettre pour faire un retour chariot?] Voici le 2ème paragraphe"); 
     
    J'utilise le DOM et voici un bout de code 
     
     
    mycurrent_row=document.createElement("TR"); 
         mybody.appendChild(mytable);  
         mycurrent_cell=document.createElement("TD"); 
         mycurrent_cell.style.color='#000000'; 
         currenttext=document.createTextNode(interpretation_inclusion[inclusion[i]][i]);
    Je sais qu'il y a des solutions pour contourner ce problème, comme par exemple créer une 2ème chaîne indépendante ou encore faire afficher un <br> ailleur dans mon code
    Mais j'aimerai vraiment savoir si ce que je veux faire existe
    J'aimerai mettre en forme les caractères de ma chaines à partir de retour chariots que je placerai dans la chaine elle-même


    Ce que j'ai déjà essayé :

    interpretation_inclusion[0][0] = new Array("Voici le 1er paragraphe<br>Voici le 2ème paragraphe");
    Si je met un <br> dans ma chaîne, voici ce que cela m'affiche : "Voici le 1er paragraphe<br>Voici le 2ème paragraphe"
    (oui je sais c idiot )

    J'ai bien essayé de mettre un \n dans ma chaîne (à la place du <br>), mais "\n" s'affiche sous la forme d'un caractère d'espace

    Merci de votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut


    l transformation de ton <br /> en string n'a rien d'idiot, elle est juste logique : tu demandes au DOM de construire un moeud texte...

    il faut simplement lui demander de créer un noeud "retour chariot" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.createElement("br");
    ensuite il te suffit de mettre tes differents paragraphes dans des elements separés de ton Array, et d'inserer un noeud retour chariot entre chaque element de ton Array 8)

  3. #3
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 201
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 201
    Points : 8 426
    Points
    8 426
    Billets dans le blog
    17
    Par défaut
    Si tu as plusieurs paragraphes mieux vaut les délimiter par des <p></p> plutôt que par un <br>
    C'est sémantiquement meilleur et en plus ce sera moins fastidieux à programmer.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Merci pour vos réponses les gas
    Mais ce n'est pas si simple que ça dans mon cas, ce que vous proposez ne fonctionne pas dans mon code
    Je me permet du vous donner un code qui illustrera mon problème
    Quelqu'un m'a dit d'utiliser innerHTML, mais je ne sais pas comment faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <script type="text/JavaScript"> 
     
    var tab = new Array("Voici le 1er paragraphe <br> Voici le 2ème paragraphe"); 
     
    function traitement() 
    { 
    var mybody=document.getElementsByTagName("body").item(0);  
     
    mytable = document.createElement("TABLE");  
    mytablebody = document.createElement("TBODY");  
     
    mycurrent_row=document.createElement("TR");  
    mycurrent_cell=document.createElement("TD");  
     
    currenttext=document.createTextNode(tab); 
     
    mycurrent_cell.appendChild(currenttext);  
    mycurrent_row.appendChild(mycurrent_cell);  
    mytablebody.appendChild(mycurrent_row);  
    mytable.appendChild(mytablebody);  
    mybody.appendChild(mytable);  
    mytable.setAttribute("border","0");  
     
     
    } 
    </script> 
     
     
    <HTML> 
    <BODY bgColor="#ffffff" leftMargin="100" rightMargin="100" topMargin="15" MARGINWIDTH="0" MARGINHEIGHT="0">  
     
    <FORM name="formulaire"> 
    <BR><BR> 
    <INPUT onclick="traitement()" type="button" value="Affichage de ma chaine"> 
    </FORM> 
     
    </BODY> 
    </HTML>

  5. #5
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Pour utiliser innerHTML, c'est simple.
    au lieu de:
    currenttext=document.createTextNode(tab);
    mycurrent_cell.appendChild(currenttext);
    Tu fais simplement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mycurrent_cell.innerHTML=tab[0];
    Cependant, c'est pas très propre....

    Je te conseille de continuer d'utiliser DOM.

    Ce que j'ai du mal à comprendre dans ton code, c'est pourquoi tu utilises une array pour mettre ce texte, et pourquoi uitiliser une seule case de l'array pour mettre deux paragraphes? Ne serait-il pas plus logique de mettre un paragraphe comme élément de l'array.

    Dans ce cas, ton code deviendrait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
     var tab = new Array("Voici le 1er paragraphe","Voici le 2ème paragraphe");
     
    function traitement() 
    { 
    var mybody=document.getElementsByTagName("body").item(0);  
     
    mytable = document.createElement("TABLE");  
    mytablebody = document.createElement("TBODY");  
     
    for (var i=0; i<tab.length; i++) {
      mycurrent_row=document.createElement("TR");  
      mycurrent_cell=document.createElement("TD");  
     
      currenttext=document.createTextNode(tab[i]); 
     
      mycurrent_cell.appendChild(currenttext);  
      mycurrent_row.appendChild(mycurrent_cell);  
      mytablebody.appendChild(mycurrent_row); 
      } 
    mytable.appendChild(mytablebody);  
    mybody.appendChild(mytable);  
    mytable.setAttribute("border","0");  
    }
    Et dans ce cas, plus de problème de gestion des sauts de ligne pour les paragraphes.

    Derniere question:
    Si tu cherches simplement à écrire du texte dans ta page, pourquoi créer des cellules de tableaux (tr/td). Ca sert à rien (tu cherches à écrire du texte, pas à faire des tableaux...) et c'est laid. Enfin, c'est mon avis

    Bonne chance !!

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Merci beaucoup pour ce cours magistral
    Ya des moment je suis vraiment bête, ta solution consistant à mettre un paragraphe comme élément de l'array est bien
    Ce morceau de code que j'ai montré est juste un petit échantillon pour comprendre facilement mon problème
    En fait à la base, c'est un programme de numérologie
    En fonction des calculs, les interprétations sont différentes, et je stock ces interprétations dans des tableaux
    Ces interprétations peuvent être assez longues et j'aimerai donc pouvoir mettre des retours chariot dans mes chaînes pour faire une présentation aérée au cas par cas

    Voilà

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/11/2008, 21h29
  2. [C#] Comment insérer des retours chariot dans une chaine de caractère ?
    Par tazmania dans le forum Accès aux données
    Réponses: 4
    Dernier message: 30/10/2006, 09h27
  3. Réponses: 2
    Dernier message: 23/08/2006, 17h20
  4. Réponses: 1
    Dernier message: 11/01/2006, 11h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo