Partage
  • Partager sur Facebook
  • Partager sur Twitter

[JavaScript] BBcode

BBcode dans une page PHP

Sujet résolu
    19 avril 2006 à 21:35:09

    Bonjour,
    J'ai lu le tuto sur le BBcode mais je n'arrive pas à l'insérer dans ma page PHP (une page pour rédiger les news comme dans le TP du site du zéro mais modifié pour mettre des news dans plusieurs pages grâce à une liste déroulante). :D
    J'ai donc essayer d'autres codes sources sans aucun résultat, néanmoins le code marche quand il n'est pas dans la page PHP. :(
    Je vous demande donc de l'aide. :-°
    MERCI D'AVANCE POUR TOUTES AIDES.
    • Partager sur Facebook
    • Partager sur Twitter
      19 avril 2006 à 21:41:43

      Commence par donner ton code plz... :-°
      • Partager sur Facebook
      • Partager sur Twitter
        19 avril 2006 à 21:49:58

        Voilà, j'ai mis ce code dans le "HEAD" (j'ai aussi essayer le code du site du zéro) :
        <head>
           <script language="javascript">
           <!--
        function addbbcode(balise)
        {
        if (document.forms['bbcode'].elements[balise].value == balise)
        {
        document.forms['bbcode'].elements['texte'].value = document.forms['bbcode'].elements['texte'].value+'<'+balise+'>';
        document.forms['bbcode'].elements[balise].value = balise+'*';
        }
        else if (document.forms['bbcode'].elements[balise].value == balise+'*')
        {
        document.forms['bbcode'].elements['texte'].value = document.forms['bbcode'].elements['texte'].value+'</'+balise+'>';
        document.forms['bbcode'].elements[balise].value = balise;
        }
        }
        -->
        </script>
               <title>Rédiger une news</title>
                <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
            </head>


        Voici mon "textarea" :
        <form name="bbcode">
        <div><input type="button" onClick="addbbcode('b');" name="b" value="b" /><input type="button" onClick="addbbcode('u');" name="u" value="u" /><input type="button" onClick="addbbcode('i');" name="i" value="i" /></div>
        <div><textarea name="texte"><?php echo $contenu; ?></textarea></div>
                        </form>
        • Partager sur Facebook
        • Partager sur Twitter
          19 avril 2006 à 22:16:06

          BOn alors je suis pas un pro en JS, mais je croi que
          <!-- Commentaire -->

          C'est pour les commentaires, (enfin je croi), donc essaye sa...

          <head>
             <script language="javascript">
           
          function addbbcode(balise)
          {
          if (document.forms['bbcode'].elements[balise].value == balise)
          {
          document.forms['bbcode'].elements['texte'].value = document.forms['bbcode'].elements['texte'].value+'<'+balise+'>';
          document.forms['bbcode'].elements[balise].value = balise+'*';
          }
          else if (document.forms['bbcode'].elements[balise].value == balise+'*')
          {
          document.forms['bbcode'].elements['texte'].value = document.forms['bbcode'].elements['texte'].value+'</'+balise+'>';
          document.forms['bbcode'].elements[balise].value = balise;
          }
          }

          </script>
                 <title>Rédiger une news</title>
                  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
              </head>

          je precise encore une fois que le JS c'esp pas mon truc... :-° , bon bonne continuation...

          Edit: Je crois que tu a oublié de metre un atribut a method dans ton form. ex:
          <form method="post">

          • Partager sur Facebook
          • Partager sur Twitter
            19 avril 2006 à 22:23:32

            Merci pour essayer de m'aider mais le code que tu m'as donné ne marche toujours pas :(
            il y a toujours quelque chose qui pose probléme mais je ne sais pas quoi
            si quelqu'un a une meilleur idée je l'accepte tout de suite. :-°
            • Partager sur Facebook
            • Partager sur Twitter
              19 avril 2006 à 23:31:14

              dans "vos tutos", il ya un tutorial pour du BBcode plus compliqué et pas tjs bien expliqué mais il marche, je l'ai installé hier sur mon script de news du TP sdz. Donc va voir là bas et si tu as des problèmes je pourrai sans doute t'aider, car il faut après dans la page index, rajouter les regex comme le montre mateo dans le cours php!! voilà bonne chance.
              • Partager sur Facebook
              • Partager sur Twitter
                19 avril 2006 à 23:31:47

                Non non, les commentaires <!--- et --> sont utiles et ne gènent pas le déroulement du javascript. Ca permet par contre au navigateur ne supportant pas le javascript d'ignorer le code qui y est inclu au lieu de l'afficher comme du texte (enfin, de nos jours, je vois pas trop de navigateur ne supportant pas le javascript).

                J'ai vérifié, sans texte initial dans le texterea et ça a l'air de marcher. Peut être que c'est le texte initial qui contient des choses qui font planter le formulaire.
                Que se passe t-il si tu échappe le contenu:
                au lieu de :

                <?php echo $contenu; ?>

                Tu met:

                <?php echo htmlentities($contenu); ?>
                • Partager sur Facebook
                • Partager sur Twitter
                  20 avril 2006 à 16:47:34

                  ok maintenant je le sais, mais j'eteait pas trop sur
                  • Partager sur Facebook
                  • Partager sur Twitter
                    20 avril 2006 à 18:03:25

                    Pardon.
                    J'ais mis ce sujet car j'ais déja essayé tous les codes sources y compris celuis inclus dans "vos tutos". :colere:
                    mais aucun ne marche et pour le htmlentities ca ne m'intérésse pas. Afficher directement les balises me suffit car c'est une page protégée donc je connais les utilisateurs. :D
                    Voici le code source de la page :
                    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
                    <link rel="stylesheet" media="screen" type="text/css" title="sombre" href="../../css/CSS.css"/>
                       <head>
                       <script language="javascript">
                     
                    function addbbcode(balise)
                    {
                    if (document.forms['bbcode'].elements[balise].value == balise)
                    {
                    document.forms['bbcode'].elements['texte'].value = document.forms['bbcode'].elements['texte'].value+'<'+balise+'>';
                    document.forms['bbcode'].elements[balise].value = balise+'*';
                    }
                    else if (document.forms['bbcode'].elements[balise].value == balise+'*')
                    {
                    document.forms['bbcode'].elements['texte'].value = document.forms['bbcode'].elements['texte'].value+'</'+balise+'>';
                    document.forms['bbcode'].elements[balise].value = balise;
                    }
                    }

                    </script>
                           <title>Rédiger une news</title>
                            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
                        </head>
                       
                        <body><div class="corps_pass">
                            <div class="corps"><center>
                    <h3><a href="pass2.php">Retour à la liste des news</a></h3>

                    <?php
                    mysql_connect("localhost", "root", "");
                    mysql_select_db("jacquestest");

                    if (isset($_GET['modifier_news'])) // Si on demande de modifier une news
                    {
                        // On récupère les infos de la correspondante
                        $retour = mysql_query('SELECT * FROM news WHERE id=' . $_GET['modifier_news']);
                        $donnees = mysql_fetch_array($retour);
                       
                        // On place le titre et le contenu dans des variables simples
                        $titre = $donnees['titre'];
                            $contenu = $donnees['contenu'];
                            $page = $donnees['page'];
                        $id_news = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification
                    }
                    else // C'est qu'on rédige une nouvelle news
                    {
                        // Les variables $titre et $contenu sont vides, puisque c'est une nouvelle news
                        $titre = '';
                        $contenu = '';
                            $page = '';
                        $id_news = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
                    }
                    ?>

                    <form action="pass2.php" method="post" name="formulaire">
                    <p>Titre : <input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /></p>
                    <p>type : <select name="page">
                        <option value="news">news</option>
                        <option value="prochaine_fete">prochaine fete</option>
                        <option value="page_index">page index</option>
                            <option value="menbre">page menbre</option>
                    </select></p>

                    <p>
                        Contenu :<br>
                                    <form method="post" name="bbcode">
                    <div><input type="button" onClick="addbbcode('b');" name="b" value="b" /><input type="button" onClick="addbbcode('u');" name="u" value="u" /><input type="button" onClick="addbbcode('i');" name="i" value="i" /></div>
                    <div><textarea name="texte"><?php echo $contenu; ?></textarea></div>
                                    </form>
                                    <br />
                       
                        <input type="hidden" name="id_news" value="<?php echo $id_news; ?>" />
                        <input type="submit" value="Envoyer" />
                    </p></div></center>
                    </form>

                    </body>
                    </html>
                    • Partager sur Facebook
                    • Partager sur Twitter
                      21 avril 2006 à 20:26:56

                      Bonjour,
                      Désolé de "flouder" mais il me faudrait une réponse à ce sujet : même si vous devez me dire que mon idée ne peut pas marcher.
                      Répondez moi rapidement s'il vous plait, merci.
                      Encore merci.....
                      • Partager sur Facebook
                      • Partager sur Twitter
                        21 avril 2006 à 20:52:42

                        Salut,

                        Remplace :

                        <form action="pass2.php" method="post" name="formulaire">


                        Par :

                        <form action="pass2.php" method="post" id="bbcode">
                        • Partager sur Facebook
                        • Partager sur Twitter
                          21 avril 2006 à 20:58:42

                          merci s'est génial le code JavaScript marche :):)
                          seulement je n'arrive plus à enregistrer le message dans ma bdd :(
                          est-ce que tu as une solution ? o_O
                          • Partager sur Facebook
                          • Partager sur Twitter
                            21 avril 2006 à 21:06:29

                            C'est toi qu'il l'a fait ce script php ?

                            Montre le code php de ta page d'insert.
                            • Partager sur Facebook
                            • Partager sur Twitter
                              21 avril 2006 à 21:08:17

                              pas tout à fait s'est celui du TP que j'ai arrangé :

                              <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
                              <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
                              <link rel="stylesheet" media="screen" type="text/css" title="sombre" href="../../css/CSS.css"/>
                                  <head>
                                      <title>le site officiel de la vogue !/espace administrateur/active</title>
                                      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
                                  </head>
                                  <body>
                                         <div class="corps_pass">
                                              <center><h1> bienvenue administrateur</h1></center>
                                         </div>
                                         <div class="corps_pass">
                                         <h2><a href="rediger_news.php">Ajouter une news</a></h2>
                                      <center>        <?php
                              mysql_connect("localhost", "root", "");
                              mysql_select_db("jacquestest");

                              //-----------------------------------------------------
                              // Vérification 1 : est-ce qu'on veut poster une news ?
                              //-----------------------------------------------------

                              if (isset($_POST['titre']) AND isset($_POST['contenu']) AND isset($_POST['page']))
                              {
                                  $titre = addslashes($_POST['titre']);
                                  $contenu = addslashes($_POST['contenu']);
                                      $page = addslashes($_POST['page']);
                                  // On vérifie si c'est une modification de news ou pas
                                  if ($_POST['id_news'] == 0)
                                  {
                                      // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
                                      mysql_query("INSERT INTO news VALUES('', '" . $titre . "', '" . $contenu . "', '" . $page . "')");
                                  }
                                  else
                                  {
                                      // C'est une modification, on met juste à jour le titre et le contenu
                                      mysql_query("UPDATE news SET titre='" . $titre . "', contenu='" . $contenu . "', page='" . $page . "' WHERE id=" . $_POST['id_news']);
                                  }
                              }


                              //--------------------------------------------------------
                              // Vérification 2 : est-ce qu'on veut supprimer une news ?
                              //--------------------------------------------------------

                              if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news
                              {
                                  // Alors on supprime la news correspondante
                                  mysql_query('DELETE FROM news WHERE id=' . $_GET['supprimer_news']);
                              }
                              ?>

                              <table><tr><th>Modifier</th><th>Supprimer</th><th>Titre</th><th>page</th></tr>

                              <?php
                              $retour = mysql_query('SELECT * FROM news ORDER BY id DESC');
                              while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
                              {
                              ?>

                              <tr>
                              <td><?php echo '<a href="rediger_news.php?modifier_news=' . $donnees['id'] . '">'; ?>Modifier</a></td>
                              <td><?php echo '<a href="pass2.php?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
                              <td><?php echo stripslashes($donnees['titre']); ?></td>
                              <td><?php echo stripslashes($donnees['page']); ?></td>
                              </tr>

                              <?php
                              } // Fin de la boucle qui liste les news
                              mysql_close();
                              ?>
                              </table></center>
                              </div>
                                         <div class="corps_pass">
                                         <a href="navigue.php">revenir à la page administration</a><br>
                                         <a href="../../index.php">revenir à l'acceueil</a></center>
                                              </div>
                                  </body>
                              </html>
                              • Partager sur Facebook
                              • Partager sur Twitter
                                21 avril 2006 à 21:24:01

                                J'avais pas regardé attentivement ton 1er code :

                                Tu as mis 2 formulaire imbriqué, ça va pas du tout.

                                Avec ça, normalement, ça devrait être bon.

                                <form action="pass2.php" method="post" id="bbcode">
                                    <p>Titre :
                                      <input type="text" size="30" name="titre" value="<?php echo $titre; ?>" />
                                    </p>
                                    <p>type :
                                      <select name="page">
                                        <option value="news">news</option>
                                        <option value="prochaine_fete">prochaine fete</option>
                                        <option value="page_index">page index</option>
                                        <option value="menbre">page menbre</option>
                                      </select>
                                    </p>
                                   
                                    <div>Contenu :<br>
                                     
                                      <div>
                                        <input type="button" onClick="addbbcode('b');" name="b" value="b" />
                                        <input type="button" onClick="addbbcode('u');" name="u" value="u" />
                                        <input type="button" onClick="addbbcode('i');" name="i" value="i" />
                                      </div>
                                     
                                      <div>
                                        <textarea name="texte"><?php echo $contenu; ?></textarea>
                                      </div>
                                     
                                      <p>
                                        <input type="hidden" name="id_news" value="<?php echo $id_news; ?>
                                " />
                                        <input type="submit" value="Envoyer" />
                                     
                                      </p>
                                    </div>
                                  </form>
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  21 avril 2006 à 21:34:02

                                  oui j'y avais pensé et modifié lors de ton dernier message ;)
                                  mais ce nouveau code marche bien pour insérer les balises comme
                                  un vrai bbcode malheureusement le php ne marche toujours pas
                                  et je ne peux toujours pas enregistrer mes news dans ma bdd. :o
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    21 avril 2006 à 21:42:02

                                    Ici

                                    if (isset($_POST['titre']) AND isset($_POST['contenu']) AND isset($_POST['page']))


                                    Tu as un $_POST['contenu'] qui n'existe pas, puisque :

                                    <textarea name="texte"><?php echo $contenu; ?></textarea>


                                    Le name de ton textarea s'appelle texte.

                                    Change son nom.

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      21 avril 2006 à 21:48:59

                                      merci
                                      je crois que je vais encadrer ton pseudo :lol:
                                      non je plaisante
                                      un grand merci
                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      [JavaScript] BBcode

                                      × 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