Partage
  • Partager sur Facebook
  • Partager sur Twitter

Script de visualisation automatique

Problème pour un saut de ligne

Sujet résolu
    9 juillet 2010 à 17:55:57

    Bonjour à tous les zéro ici présents.

    Je suis en train de faire un site web pour une association, et j'ai fait un formulaire de contact. J'ai voulu rajouté une visualisation automatique toutes les secondes.

    Mais le problème, c'est que dans la visualisation, il n'y a pas de saut de lignes.

    J'ai été voir sur internet, mais les solutions données ne marchent pas.

    Voici mon script :
    function visualiser()
    {
    	// Cette condition permet de vérifier que ce ne sont pas les valeurs par défaut des champs.
    	if (nom.style.fontStyle != "italic" && prenom.style.fontStyle != "italic" && mail.style.fontStyle != "italic" &&
    		titre.style.fontStyle != "italic" && message.style.fontStyle != "italic")
    	{
    		var txt_titre = document.createElement("h3");
    		var txt_indice = document.createElement("h6");
    		var txt_message = document.createElement("p");
    		txt_titre.appendChild(document.createTextNode(titre.value));
    		txt_indice.appendChild(document.createTextNode("Par "+prenom.value+" "+nom.value+" ("+mail.value+")"));
    		
    		var contenu_message = message.value;
    		// Cette fonction ne fait pas ce que je veux.
    		contenu_message.replace(/ \ n /g, "<br/>");
    		txt_message.appendChild(document.createTextNode(contenu_message));
    		
    		
    		visualisation.replaceChild(txt_titre, visualisation.getElementsByTagName("h3")[0]);
    		visualisation.replaceChild(txt_indice, visualisation.getElementsByTagName("h6")[0]);
    		visualisation.replaceChild(txt_message, visualisation.getElementsByTagName("p")[0]);
    	}
    	else // Ce sont les valeurs par défaut des champs, on demande à l'utilisateur de remplir d'abord tous les champs.
    	{
    		var p = document.createElement("p");
    		p.appendChild(document.createTextNode("Pour visualiser votre message, veuillez compléter entièrement le formulaire ci-dessus."));
    		visualisation.replaceChild(p, visualisation.getElementsByTagName("p")[0]);
    	}
    	setTimeout("visualiser()", 1000); // On actualise toutes les secondes.
    }
    


    Pour information, j'ai aussi essayé ces fonctions :
    • contenu_message.replace(/\\n/g, "<br/>");
    • contenu_message.replace(/\n/g, "<br/>");
    • contenu_message.replace(/\ n/g, "<br/>");
    • contenu_message.replace(/ \\n /g, "<br/>");
    • contenu_message.replace(/ \n /g, "<br/>");
    • Les mêmes sans le g


    Merci de votre aide, car là, je peine vraiment. :(
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      9 juillet 2010 à 17:58:55

      au hasard
      contenu_message = contenu_message.replace(/\n/g, "<br/>");
      


      règle moi ce setTimeout comme il faut aussi ça m'évitera de devoir tuer un chaton.
      http://www.siteduzero.com/tutoriel-3-1 [...] tml#ss_part_4
      • Partager sur Facebook
      • Partager sur Twitter
        9 juillet 2010 à 18:11:47

        .......................................................................................................*smiley honte manquant*


        Ok, je ne savais pas qu'il fallait récupérer la valeur de retour.

        Merci, mais maintenant, j'ai un autre problème. C'est <br/> qui s'affiche et non un retour à la ligne. :o

        Si vous avez une idée.

        Nouveau code :
        function visualiser()
        {
        	if (nom.style.fontStyle != "italic" && prenom.style.fontStyle != "italic" && mail.style.fontStyle != "italic" &&
        		titre.style.fontStyle != "italic" && message.style.fontStyle != "italic")
        	{
        		var txt_titre = document.createElement("h3");
        		var txt_indice = document.createElement("h6");
        		var txt_message = document.createElement("p");
        		txt_titre.appendChild(document.createTextNode(titre.value));
        		txt_indice.appendChild(document.createTextNode("Par "+prenom.value+" "+nom.value+" ("+mail.value+")"));
        		
        		var contenu_message = message.value;
        		contenu_message = contenu_message.replace(/\n/g, "<br/>");
        		txt_message.appendChild(document.createTextNode(contenu_message));
        		
        		
        		visualisation.replaceChild(txt_titre, visualisation.getElementsByTagName("h3")[0]);
        		visualisation.replaceChild(txt_indice, visualisation.getElementsByTagName("h6")[0]);
        		visualisation.replaceChild(txt_message, visualisation.getElementsByTagName("p")[0]);
        	}
        	else
        	{
        		var p = document.createElement("p");
        		p.appendChild(document.createTextNode("Pour visualiser votre message, veuillez compléter entièrement le formulaire ci-dessus."));
        		visualisation.replaceChild(p, visualisation.getElementsByTagName("p")[0]);
        	}
        	setTimeout(visualiser, 1000);
        }
        


        Sinon, pour setTimeout, j'ignorais qu'on pouvais faire comme ça, c'est beaucoup plus simple, merci. :D
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          9 juillet 2010 à 18:15:03

          y'a pas 36 solutions là, soit tu fait un nl2br quelque part, soit tu utilises
          txt_message.innerHTML = contenu_message;
          • Partager sur Facebook
          • Partager sur Twitter
            9 juillet 2010 à 18:16:12

            Ok, mais j'ai cru lire quelque part que c'était déconseillé, donc j'évite au maximum de l'utiliser.

            Merci pour vos réponses.

            Au revoir.
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              9 juillet 2010 à 18:18:02

              Tu scroll 2 partie dans le lien que je t'ai donné plus haut :p
              • Partager sur Facebook
              • Partager sur Twitter
                9 juillet 2010 à 18:22:08

                Ok, j'ai vu, merci de ton aide. ;)
                • Partager sur Facebook
                • Partager sur Twitter

                Script de visualisation automatique

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown