Partage
  • Partager sur Facebook
  • Partager sur Twitter

Insérer du texte dans un formulaire quand ...

on clique sur une image.

    2 juillet 2006 à 11:55:49

    Dans mon projet d'améliorer le Mini Chat du premier TP PHP du SdZ, j'ai mis un systeme de smileys (pour l'instant ceux de msn messenger mais ça changera ) .

    Jai mis les str_replace pour que le code se transforme en l'image mais ce que je veux c'est que quand on clique sur l'image du smiley en dehors du formulaire, sa insere le code dans le formulaire.

    Jai entendu que c'était possible en Javascript, pouvait vous me donner le code pour ça ?

    ( mon mini chat est ici : http://www.dsvids.com/site_du_zero/messages.php )
    • Partager sur Facebook
    • Partager sur Twitter
      2 juillet 2006 à 13:07:14

      Ton code actuel :


      <form action="formulaires.php" method="post">

      <p>
      Pseudo: <input type="text" name="pseudo" value="" /> <br/>

      Message: <textarea type="text" name="message" rows="3" cols="20">
      Votre message ici.

      </textarea><br/>
      <input type="submit" value"Valider"/><br/> <br/>

      </p>
      </form>


      Ajoute ceci :



      <form action="formulaires.php" method="post" <couleur nom="rouge">name="boite_lettre"</couleur>>

      <p>
      Pseudo: <input type="text" name="pseudo" value="" /> <br/>

      Message: <textarea type="text" name="message" rows="3" cols="20" <couleur nom="rouge">id="msg"</couleur>>
      Votre message ici.

      </textarea><br/>
      <input type="submit" value"Valider"/><br/> <br/>

      </p>
      </form>


      Ensuite les smileys :

      <img alt="Smilies" src="smiley/angry.gif" onclick="addsmilies(':@')">...


      Et enfin le JS tout en haut de ta page :

      function ajsmiley(smiley) {
      var message = document.newsmess.message.value;
      avecsmiley = message+smiley;
      document.newsmess.message.value=avecsmiley;
      }

      function chgpage(formulaire) {
      if (formulaire.listepages.selectedIndex != 0) {
      location.href = formulaire.listepages.options[formulaire.listepages.selectedIndex].value;
      }
      }


      //Code protégé
      var isMozilla = (navigator.userAgent.toLowerCase().indexOf('gecko')!=-1) ? true : false;
      var regexp = new RegExp("[\r]","gi");
      function addsmilies(selec) {
              if (isMozilla) {
              // Si on est sur Mozilla
                      oField = document.forms['boite_lettre'].elements['msg'];
                      objectValue = oField.value;
                      deb = oField.selectionStart;
                      fin = oField.selectionEnd;
                      objectValueDeb = objectValue.substring( 0 , oField.selectionStart );
                      objectValueFin = objectValue.substring( oField.selectionEnd , oField.textLength );
              oField.value = objectValueDeb + selec + objectValueFin;
                      oField.selectionStart = strlen(objectValueDeb);
                      oField.selectionEnd = strlen(objectValueDeb + selec + objectSelected);
                      oField.focus();
                      oField.setSelectionRange(
                              objectValueDeb.length + selec.length + 2,
                              objectValueDeb.length + selec.length + 2);
              } else {
              // Si on est sur IE
                      oField = document.forms['boite_lettre'].elements['msg'];
                      var str = document.selection.createRange().text;
                      if (str.length>0) {
                              var sel = document.selection.createRange();
                              sel.text = selec + str;
                              sel.collapse();
                              sel.select();
                      } else {
                              oField.focus(oField.caretPos);
                              oField.focus(oField.value.length);
                              oField.caretPos = document.selection.createRange().duplicate();
                             
                              var bidon = "%~%";
                              var orig = oField.value;
                              oField.caretPos.text = bidon;
                              var i = oField.value.search(bidon);
                              oField.value = orig.substr(0,i) + selec + orig.substr(i, oField.value.length);
                              var r = 0;
                              for(n = 0; n < i; n++)
                              {if(regexp.test(oField.value.substr(n,2)) == true){r++;}};
                              pos = i + 2 + selec.length - r;
                              //placer(document.forms['boite_lettre'].elements['msg'], pos);
                              var r = oField.createTextRange();
                              r.moveStart('character', pos);
                              r.collapse();
                              r.select();
                      }
              }
      }


      Et voilà
      • Partager sur Facebook
      • Partager sur Twitter
        2 juillet 2006 à 14:30:01

        MERCI je testerai tout a l'heure. A quoi sert le "code protege" dans le JS ?
        • Partager sur Facebook
        • Partager sur Twitter
          2 juillet 2006 à 15:51:47

          copyrighté mais j'ai demandé l'accord de la personne qui l'a fait :)
          • Partager sur Facebook
          • Partager sur Twitter
            2 juillet 2006 à 17:05:52

            ah ok et quel est l'interet de connaitre le navigateur du visiteur?
            • Partager sur Facebook
            • Partager sur Twitter
              2 juillet 2006 à 21:03:55

              essaye sous IE un autre code et tu verras que ça foire
              • Partager sur Facebook
              • Partager sur Twitter

              Insérer du texte dans un formulaire quand ...

              × 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