Partage
  • Partager sur Facebook
  • Partager sur Twitter

[JS] Systéme de BBcode live

    21 juin 2006 à 17:59:32

    Bonjour, je suis actuellement en train de programmer un systéme de gestion de BBcode avec prévisualisation live. Je me suis inspiré du tutoriel suivant.

    Mon systéme marche correctement. Mon probléme est que j'ai dans la même page deux champs "textarea" qui doivent pouvoir avoir la prévisualisation BBcode alors je sais qu'il faut modifier la ligne :
    var input = window.document.formulaire.textarea;
    mais je peut fair soit l'un soit l'autre. Je n'arrive pas à faire que les deux champs marche simultanément.
    Je vois un solution lourde celle de recopier la fonction :
    function bbcode(bbdebut, bbfin)
    deux fois mais j'aimerais avoir quand même quelque chose de moins lourd à gérer.

    Je sais pas si je suis clair vu que je n'ai pas de recul par rapport à mon probléme et que je conné toute les données.

    Si vous pouviez me dépanner ou du moins m'orientez vers de la documentation.

    Merci

    Pierre
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      21 juin 2006 à 19:00:02

      bah moi je dis au lieu de recopier toute ta fonction tu passe le textarea en parametre (ils doivent surement avoir un ID alors en faitsant document.getElementById('hophophop') ca te donne le textarea qui a pour id hophophop suffit que tu nomme le parametre input et y'a pas de bleme :)
      (dans ce cas la faut enlever var input = window.document.formulaire.textarea;.

      suis peu etre pas tres clair moi non plus, j'ai toutes les données dans ma tete :p
      • Partager sur Facebook
      • Partager sur Twitter
        21 juin 2006 à 21:38:03

        Bonsoir, merci de ta réponse mais cela ne marche pas. Maintenant cela ne marche plus du tout.
        Tu dit :

        Citation : nod_

        suffit que tu nomme le parametre input

        c'est à dire concrétement ?

        Merci de ton aide.

        Pierre
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          22 juin 2006 à 20:23:12

          function bbcode(bbdebut, bbfin, input)

          avec input qui est : document.getElementById('hophophop')

          dsl du temps de reponse :p
          • Partager sur Facebook
          • Partager sur Twitter
            26 juin 2006 à 18:18:54

            Bonjour, merci de ta réponse. Donc si j'ai bien compris :
            en haut de ma page :

            <script language="Javascript">
            function bbcode(bbdebut, bbfin, input)
                    {  // donc plus de "var input = window.document.formulaire.textarea_commentaire;"
                            input.focus();
            [...]

            Le code pour mes boutons doit être :

            <input type="button" id="gras" name="gras" value="Gras" onClick="javascript:bbcode('[g]', '[/g]', 'document.getElementById('textarea_commentaire')');return(false)" />

            et non plus :

            <input type="button" id="gras" name="gras" value="Gras" onClick="javascript:bbcode('[g]', '[/g]');return(false)" />

            Mon textarea doit êtres codé comme ceci :

            <textarea rows="20" cols="60" id="textarea_commentaire" name="commentaire"><?php echo $commentaire; ?></textarea><!-- changer que le name -->


            Mais dans ce cas la prévisualisation en temps réel fonctionne toujours mais les bouton non !
            J'ai bien compris ou alors il y as encore quelque chose qui manque ?

            Merci de l'aide.

            Pierre
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              26 juin 2006 à 22:46:52

              presque :)


              <input type="button" id="gras" name="gras" value="Gras" onClick="bbcode('[g]', '[/g]', document.getElementById('textarea_commentaire'));return(false)" />


              il ne faut pas mettre de ' ' autour du document.getElementById() puisque c'est une expression a evaluer et non pas une chaine de caractere ^^

              et la ca devrait marcher (ha vi pas besoin de javascript: dans le onclick, vu que onclick est fait expres pour le js :)
              • Partager sur Facebook
              • Partager sur Twitter
                26 juin 2006 à 23:40:08

                Je te remercie ça à l'air de marcher (je test plus profondément et je te dis si cela marche réellement). J'ai encore une question.
                Mon fichier "prev.js" contient ces deux fonctions :

                function  previsualisation()
                        {
                                t=document.formulaire.textarea_commentaire.value
                                t=code_to_html(t)
                                if (document.getElementById) document.getElementById("previsualisation").innerHTML=t
                                if (document.formulaire.auto.checked) timer=setTimeout(previsualisation,1)
                                <!-- le "1" est le temps que met le texte à s'afficher, "1" : le texte s'affichera en même temps que l'on écrit (en s) -->
                        }
                function automatique()
                        {
                                if (document.formulaire.auto.checked) previsualisation() <!-- si on a cocher la case d'
                aperçu automatique -->
                        }

                Est-ce que je peut faire :

                function  previsualisation(t)
                        {
                                t=code_to_html(t)
                                if (document.getElementById) document.getElementById("previsualisation").innerHTML=t
                                if (document.formulaire.auto.checked) timer=setTimeout(previsualisation,1)
                                <!-- le "1" est le temps que met le texte à s'afficher, "1" : le texte s'affichera en même temps que l'on écrit (en s) -->
                        }
                function automatique()
                        {
                                if (document.formulaire.auto.checked) previsualisation(t) <!-- si on a cocher la case d'
                aperçu automatique -->
                        }

                et dans mon textarea modifier :

                <input type="button" value="Prévisualiser" onClick="previsualisation();return(false)" /><!-- ce bouton va permettre aux utilisateurs de d'avoir un aperçu quand ils le veulent, pas en direct -->

                en :

                <input type="button" value="Prévisualiser" onClick="previsualisation(document.formulaire.textarea_commentaire.value);return(false)" /><!-- ce bouton va permettre aux utilisateurs de d'avoir un aperçu quand ils le veulent, pas en direct -->


                Tu en pense quoi ?

                Merci de ton aide précieuse. Je commence à comprendre les rouages du script.

                Pierre
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  27 juin 2006 à 1:38:50

                  ouaip ca peut le faire
                  seulement tu risque d'avoir des petit problemes,
                  document.getElementById("previsualisation").innerHTML=t
                  ca risque de poser probleme si il y a plusieurs zones de previsualisation (peut pas avoir plusieurs elements ac un id "previsualisation")

                  previsualisation(document.formulaire.textarea_commentaire.value)

                  ca ca doit marcher, sinon utilise le bon vieux document.getElementById('textarea_commentaire');

                  sinon t'a l'air d'avoir pigé le truc, c'est le plus important :D
                  bien joué
                  • Partager sur Facebook
                  • Partager sur Twitter

                  [JS] Systéme de BBcode live

                  × 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