Partage
  • Partager sur Facebook
  • Partager sur Twitter

Previsualisation automatique foireuse

meme en suivant un tutorial

Sujet résolu
    1 février 2006 à 15:43:20

    Hello tout le monde

    Etant jaloux du sdz, j'ai moi aussi voulu avoir ma visualisation en temps reel :D
    J'ai don csuivi le tuto pour créer un bbCode et une visualisation en temps reel :p

    Mais le probleme c'est que ça ne marche pas :'(
    Je peux ajouter des balise via la fonction js prevue à cet effet, mais impossible de previsualiser.
    Meme les simples lettres ne sont pas visibles :(

    J'ai beau regarder dans tous les sens, je ne vois pas d'ou peut venir mon erreur, parce que tout me semble correct

    donc voila mon code :

    Le code de mon formulaire
    <form action="{ACTION}" method="post" name="form">
                                    <a href="javascript:bCode('<gras>', '</gras>')">Gras</a>
                                    <fieldset>
                                            <legend>Ma news</legend>
                                            <input type="hidden" name="pseudo" value="{PSEUDO}" /><br />
                                            <label>Titre</label><input type="text" name="titre" value="{TITRE}" /><br />
                                            <label>Contenu</label><textarea class="form_norm" name="msg" id="msg">{MSG}</textarea><br />
                                    </fieldset>
                                   
                                    <input name="auto" id="auto" type="checkbox" onclick="automatique() " />
                                   
                                    <fieldset>
                                            <legend>Previsualisation du resultat</legend>
                                            <div style="border: 1px dashed #000000; padding: 0.2em; height: 200px; overflow: auto; width: 19%;" align="left" id="prev"></div>
                                    </fieldset>

                                    <div class="send">
                                            <input class="input_submit" type="button" value="Prévisualiser" onclick="previsualisation();return(false)" /><br />
                                            <input class="input_submit" type="submit" name="ajouter" value="Ajouter" />
                                    </div>
                            </form> 



    Le code javascript
    var timer = 0;
    var ptag = String.fromCharCode(5,6,7);

    //Active la previsualisation du text
    function previsualisation()
    {
            output = document.form.msg.value
            output = code_to_html(output)
           
            if (document.getElementById) document.getElementById("prev").innerHTML = output
                   
            if (document.form.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.form.auto.checked) previsualisation() // si on a cocher la case d'aperçu automatique
    }

    function code_to_html(output)
    {
            output = nl2khol(output)
           
            // balise Gras
            output = deblaie(/(\<\/gras\>)/g, output)
            output = remplace_tag(/\<gras\>(.+)\<\/gras\>/g,'<strong>$1</strong>', output)
            output = remblaie(t)

            // balise Italic
            output = deblaie(/(\<\/italic\>)/g, output)
            output = remplace_tag(/\<italic\>(.+)\<\/italic\>/g,'<em>$1</em>', output)
            output = remblaie(t)

            // balise Image
            output = deblaie(/(\<\/image\>)/g, output)
            output = remplace_tag(/\<image\>(.+)\<\/image\>/g,'<img src="$1" alt="" />', output)
            output = remblaie(t)

            // balise URL   
            output = deblaie(/(\<\/url\>)/g, output)
            output = remplace_tag(/\<\url=([\s\S]*?)\>(.+)\<\/url\>/g,'<a href="$1" target="_blank">$2</a>', output)
            output = remblaie(output)
           
            return output
    }

    // tout le code qui suit c'est pour transformer toutes les balises, comme les preg_replace en PHP -->
    function deblaie(reg, output)
    {
            textarea = new String(output);
           
            return textarea.replace(reg, '$1\n');
    }

    function remblaie(output)
    {
            textarea = new String(output);
           
            return textarea.replace(/\n/g, '');
    }

    function remplace_tag(reg, rep, output)
    {
            textarea = new String(output);
           
            return textarea.replace(reg, rep);
    }

    //Transforme les \n en <br />
    function nl2br(output)
    {
            textarea = new String(output);
           
            return textarea.replace(/\n/g, '<br />');
    }

    function nl2khol(output)
    {
            textarea = new String(output);
           
            return textarea.replace(/\n/g, ptag);
    }

    function unkhol(output)
    {
            textarea = new String(output);
           
            return textarea.replace(new RegExp(ptag, 'g'), '\n');
    }


    PS : je precise que je n'ai quasi aucune connaissance en javascript

    Donc si quelqu'un pouvait m'aider
    Merci d'avance pour son aide
    • Partager sur Facebook
    • Partager sur Twitter
      1 février 2006 à 20:03:56

      Quelle est l'erreur ? Mets une page en ligne, ce sera plus simple, pour commencer...
      • Partager sur Facebook
      • Partager sur Twitter
        1 février 2006 à 20:28:33

        Bah en faite, c'est qu'il n'y a pas d'erreur.
        J'appuy sur le bouton previsualiser, mais ça affiche rien.
        Pareil si je coche la cause pour la previsualisation automatique.

        C'est pour ça que je ne comprend pas, et la fonction bCode marche, et elle se trouve dans le meme fichier que les fonctions de previsualisations, donc le fichier est bien inclue.

        Page de test ici
        Il faut etre identifié pour voir le formulaire
        login : angele
        mdp : lol
        • Partager sur Facebook
        • Partager sur Twitter
          2 février 2006 à 16:54:07

          petit up :)

          J'aimerai vraiment resoudre mon probleme...
          • Partager sur Facebook
          • Partager sur Twitter
            2 février 2006 à 19:28:16

            deja, merci de cite mon nom pour le tuto :D
            Alors, tout d'abord, montre nous le code javascript de la page PHP ou est afficher le formulaire.
            Ensuite, je ne sais pas si tu as renommer la fonction JS, mais je vois une erreur ici :

            javascript:bCode('<gras>


            met plutot

            javascript:bbCode('<gras>


            Mais je ne peux pas te le certifier car je n'ai pas ton code JS.
            Sans le code JS de la page, je ne peux pas t'aider...

            Merci
            • Partager sur Facebook
            • Partager sur Twitter
              2 février 2006 à 19:45:53

              C'est pas au niveau de la fonction bCode, car elle marche tres bien ;)
              Ça ajoute bien les balises dans le textarea. Vois par toi meme avec mon formulaire de test ;)

              C'est au niveau de la previsualisation que ça marche pas, et là, le code javascript est mis plus haut ;)
              • Partager sur Facebook
              • Partager sur Twitter
                3 février 2006 à 19:59:23

                dans ta fonction cod_to_html tu utilise une variable 't' qui n'est déclarée nulle part...

                et dans tes fonctions qui suivent tu déclare a chaque fois la variable textarea sans mettre de var devant.
                • Partager sur Facebook
                • Partager sur Twitter
                  3 février 2006 à 20:31:24

                  Merci, ça marche maintenant ;)
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Previsualisation automatique foireuse

                  × 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