Partage
  • Partager sur Facebook
  • Partager sur Twitter

Mise en place de smiley dans un formulaire

    17 août 2006 à 10:07:04

    Bonjour,

    Voici mon script de commentaire, et je voudrais ajouter des smileys. J'ai donc mis en place un systeme de prévisualisation, mais lorsque je valide, les smileys ne sont pas pris en compte dans le commentaire, j'ai le raccourci.

    Dans head :


    <script language="javascript" type="text/javascript" src="prev.js"></script><!-- on appelle le fichier prev.js pour faire fonctionne la prévisualisation -->

    <script type="text/javascript">
    function smilies(img)
    {
    window.document.formulaire.message.value += '' + img + '';
    }
    </script>



    Dans body :

    <form method="post" name="formulaire" action="">
                    <p align="center"><img src="http://www.ffocean.com/forumff/images/smiles/Cap_PDT_01_02.gif" alt="" onClick="javascript:smilies(':D');return(false)" /></p>
                    <p align="center">
                    <label>Votre pseudo : <br/><input type="text" name="pseudo" /><br/></label>
                    <label>Laissez votre message ! <br/>
                    <input name="auto" id="auto" type="checkbox" onClick="automatique()" /> <label for="auto">Prévisualisation automatique</label><br />
                    <textarea name="message" id="message" rows="5" cols="25"></textarea><br/></label>
                    <br/><br/>
                    <input type="hidden" name="idcomment" value="<?php echo $_GET['idnews']; ?>" />
                    <br />
                    <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 --></p>
                    <div style="border: 1px dashed #000000; padding: 0.2em; height: 130px; overflow: auto; width: 35%; margin:auto" align="left" id="prev"></div>
                    <!-- on créer un div avec quelques caractéristique, on lui donne un nom et on ne le remplit pas, on le laisse vide -->
                    <p align="center"><input type="submit" name="submit" value="Envoyer !" />
                    </p>
                    </form> 



    <?php
                            if (isset($_POST['message']) AND isset($_POST['pseudo']))
                            {
                            if($_POST['message'] != '' AND $_POST['pseudo'] != '')
                            {
                            $auteur = addslashes(htmlentities($_POST['pseudo'], ENT_QUOTES));
                            $message = addslashes(htmlentities($_POST['message'], ENT_QUOTES));
                            $idcomment = $_POST['idcomment']; /* Tout ce charabia est une petite vérification : on fait attention à ce que l'auteur ait rempli tous les champs. Quels champs ? Ceux du formulaire que l'on va créer un peu plus bas :)*/
                           
                            mysql_query ("INSERT INTO commentaireff VALUES('', '" . $auteur . "', '" . $message . "', '" . $idcomment . "')")or die (mysql_error()); /* Là, on entre juste les données dans une nouvelle entrée de la table SQL...*/
                           
                            echo "<h3>Merci d'avoir commenté !</h3>";
                            }
                            else echo "<h3>Remplissez tous les champs</h3>";
                            }
                            $infos = mysql_query('SELECT * FROM commentaireff WHERE idnews=' . $_GET['idnews'] . ' ORDER BY id DESC')or die (mysql_error()); /*Ici on liste les commentaires dans l'ordre décroissant où le champ idnews est le même que celui de la variable contenue dans l'adresse de la page*/
                            while ($donnees = mysql_fetch_array($infos)) /*Une boucle pour écrire les données*/
                            {
                            $pseudo = stripslashes($donnees['pseudo']);
                            $message = stripslashes($donnees['message']);
                    ?>
                    <p><strong><?php echo $pseudo; ?></strong> a commenté :<br /><?php echo $message; ?></p>
                    <?php } ?>
                   
                    <?php mysql_close(); ?>


    Et mon fichier js :


    var timer=0;
    var ptag=String.fromCharCode(5,6,7);
    function  previsualisation() {
    t=document.formulaire.message.value
    t=code_to_html(t)
    if (document.getElementById) document.getElementById("prev").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 -->
    }
    function code_to_html(t) {
    t=nl2khol(t)

    // smilies Smile <!-- on oublie pas les smilies -->
    t=remplace_tag(/:D/g,'<img src="http://www.ffocean.com/forumff/images/smiles/Cap_PDT_01_02.gif" alt="" />',t)
    t=remblaie(t)
    t=unkhol(t)
    t=nl2br(t)
    return t
    }
    <!-- tout le code qui suit c'est pour transformer toutes les balises, comme les preg_replace en PHP -->
    function deblaie(reg,t) {
    message=new String(t);
    return message.replace(reg,'
    $1 ');
    }
    function remblaie(t) {
    message=new String(t);
    return message.replace(/n/g,'
    ');
    }
    function remplace_tag(reg,rep,t) {
    message=new String(t);
    return message.replace(reg,rep);
    }
    function nl2br(t) {
    message=new String(t);
    return message.replace(/n/g,'
    <br/>');
    }
    function nl2khol(t) {
    message=new String(t);
    return message.replace(/n/g,ptag);
    }
    function unkhol(t) {
    message=new String(t);
    return message.replace(new RegExp(ptag,'
    g'),' ');
    }   


    Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter

    Mise en place de smiley dans un formulaire

    × 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