• 03 Juillet 2025, 18:54:13


Auteur Sujet: Afficher balise en cliquant sur un lien  (Lu 2201 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Franky™

  • Franky™ est bien la
  • *
  • Gangster
  • Messages: 1058
    • Voir le profil
Afficher balise en cliquant sur un lien
« le: 08 Octobre 2008, 11:43:14 »
Bonjour,

j'ai chercher et chercher et chercher, mais je n'ai toujours pas trouver mon bonheur.

Je recherche donc un script qui permet de créer un balise dans un textarea en cliquant sur un lien.
un peux comme le BBCode.

moi je voudrai mettre des images.
Par exemple
quand je clique sur l'image dans le textarea j'aimerais que sa note " "
il ne faut pas que sa soit les balise bbcode mais que les balise XHTML.
Si vous sauriez le faire, car j'en ai marre de chercher dans le vide lol.

Merci les amis

++ Franky


°°((Franky's WebSite
Désolé pour mes fautes d'orthographes

Hors ligne NatiVe™

  • *
  • Messages: 7977
    • Voir le profil
Re : Afficher balise en cliquant sur un lien
« Réponse #1 le: 08 Octobre 2008, 11:56:49 »


Tu vois avant? Bah j'étais là encore avant!

Hors ligne Franky™

  • Franky™ est bien la
  • *
  • Gangster
  • Messages: 1058
    • Voir le profil
Re : Afficher balise en cliquant sur un lien
« Réponse #2 le: 08 Octobre 2008, 11:58:42 »
ouij'avais trouver que sa aussi, donc je les test, mais avec moi sa ne marche pas, je peux pas le reajouter dans le textarea que j'ai deja sur mon site.
lol

Merci quand meme

++ Franky


°°((Franky's WebSite
Désolé pour mes fautes d'orthographes

Hors ligne Samumu

  • *
  • Grand Banditisme
  • на здоровье !
  • Messages: 609
    • Voir le profil
    • GTACup
Re : Afficher balise en cliquant sur un lien
« Réponse #3 le: 08 Octobre 2008, 12:39:03 »
Bonjour :)

Si c'est pour un site web, tu es obligé de passer par un langage client comme le javascript pour ce genre de problème.
Pas d'inquiétude, ça reste assez basique.

Je viens de te faire à l'arrache un script d'exemple :

Code: (html4strict) [Sélectionner]
<script type = "text/javascript">

function ajouter_balises_doubles(tag)
{
textarea = document.getElementById("zone_saisie");

textarea.value += "<" + tag + ">" + "</" + tag + ">";
}

</script>

<form action = "..." method = "...">
<fieldset>
<legend>...</legend>
<a href = "javascript:" onClick = "ajouter_balises_doubles('b');">Gras</a><br /><br />
<textarea name = "zone_saisie" id = "zone_saisie" rows = "15" cols = "45"></textarea><br /><br />
<input type = "submit" value = "Envoyer" />
</fieldset>
</form>

C'est juste une piste de départ, après c'est à toi d'étoffer.


J'aimerais toutefois ajouter quelque chose.
Si tu fais ça dans un textarea, j'en déduis que tu es à l'intérieur d'un form.
Donc que tu vas envoyer par POST des données à une page PHP.

La chose la plus importante, mais vraiment, au niveau sécurité d'un site web, c'est la protection des données envoyées, par exemple avec htmlentities(), addslashes(), is_numeric(), etc.
Sur des données texte, le htmlentities() est indispensable, car il neutralise certains types d'injections.
Si tu fais un htmlentities() sur les balises xHTML qui ont été ajoutées par le script dans ton textarea, ces balises vont être neutralisées.
Et donc le code généré par ton textarea ne fonctionnera pas (les balises seront affichées telles qu'elles dans la page où tu les affiche).

C'est pour ça que le bbcode utilise des balises "personnalisées" et non les balises xHTML.
Ainsi, il peut neutraliser certaines attaques grâce à htmlentities(), et ensuite, il lui suffit de convertir le bbcode en code xHTML à coup de RegEx.

En espérant t'avoir un peu aidé ;)

[Edit] Highlight du code



Sign et avatar par NV :)

Hors ligne Franky™

  • Franky™ est bien la
  • *
  • Gangster
  • Messages: 1058
    • Voir le profil
Re : Re : Afficher balise en cliquant sur un lien
« Réponse #4 le: 08 Octobre 2008, 13:27:06 »
EDIT:

Alors j'ai essaier avec ton truc mais sa marche pas, alors j'ai fait avec se que j'avais trouver et que NV a aussi trouver et sa marche, enfin a peux de chose pres.
les balise se mettent dans mon textarea, mais quand je clique sur "Envoyé" sa marche pas.
Voila mon code

Code: (javascript) [Sélectionner]
<form name="poster">
<script language="JavaScript" type="text/javascript">
/*function storeCaret(text)
{ // voided
}
*/
function AddText(startTag,defaultText,endTag)
{
   with(document.poster)
   {
      if (contenu.createTextRange)
      {
         var text;
         contenu.focus(contenu.caretPos);
         contenu.caretPos = document.selection.createRange().duplicate();
         if(contenu.caretPos.text.length>0)
         {
            //gère les espace de fin de sélection. Un double-click sélectionne le mot
            //+ un espace qu'on ne souhaite pas forcément...
            var sel = contenu.caretPos.text;
            var fin = '';
            while(sel.substring(sel.length-1, sel.length)==' ')
            {
               sel = sel.substring(0, sel.length-1)
               fin += ' ';
            }
            contenu.caretPos.text = startTag + sel + endTag + fin;
         }
         else
            contenu.caretPos.text = startTag+defaultText+endTag;
      }
      else contenu.value += startTag+defaultText+endTag;
   }
}
</script>
Code: (html4strict) [Sélectionner]
<p>Mise en forme du texte :
   <a href="javascript:AddText('[url]','','[/url]');">URL</a>
   | <a href="javascript:AddText('[email]','','[/email]');">Email</a>
   | <a href="javascript:AddText('[b]','','[/b]');">Gras</a>
   | <a href="javascript:AddText('[i]','','[/i]');">Italique</a>
   | <a href="javascript:AddText('[u]','','[/u]');">Souligné</a>...
<br>
Smileys :
   <a href="javascript:AddText('',':)','');">Content</a>
   | <a href="javascript:AddText('',':(','');">Pas content</a>
   | <a href="javascript:AddText('','8o)','');">Faire le clown</a>
   | <a href="javascript:AddText('',';-D','');">LOL</a>...
</p>
<textarea rows="10" cols="50" name="contenu" wrap="virtual" onmouseover="this.focus();">
<?php echo $contenu?>
Tape du texte ici,
</textarea><br>

   
    <input type="hidden" name="id_news" value="<?php echo $id_news?>" />
    <input type="submit" value="Envoyer" />
</p>
</form></center>

y a t-il un soucis la dedant ?

=++ Franky
« Modifié: 08 Octobre 2008, 13:58:26 par Franky™ »


°°((Franky's WebSite
Désolé pour mes fautes d'orthographes

Hors ligne MasterOfQuebec

  • Pawn Compiler
  • *
  • Criminel
  • Messages: 29
    • Voir le profil
    • SA-MP.fr
Re : Afficher balise en cliquant sur un lien
« Réponse #5 le: 16 Octobre 2008, 22:57:08 »
Tu veut dire que quand tu cliques sur envoyer la page ne change pas ou tu es redirigé vers la même page sans aucune  action?

Si oui, le problème doit venir de la balise:
<form action="exemple.php">
(remplace 'exemple.php' par la page avec qui doit traiter le formulaire.

Hors ligne Franky™

  • Franky™ est bien la
  • *
  • Gangster
  • Messages: 1058
    • Voir le profil
Re : Afficher balise en cliquant sur un lien
« Réponse #6 le: 17 Octobre 2008, 14:10:09 »
Enfaite ouai, je revien sur la même page quand je clique sur "envoyé"
pourtant quand j'enleve le 'bbcode speciale' sa me dirige juste.

voila ce que j'ai et que j'ai pas toucher lorsque j'ai ajouter le bbcode
<form action="liste_news.php" method="post">

++ Franky


°°((Franky's WebSite
Désolé pour mes fautes d'orthographes

Hors ligne Bayshore

  • *
  • Grand Banditisme
  • Messages: 923
    • Voir le profil
Re : Afficher balise en cliquant sur un lien
« Réponse #7 le: 18 Octobre 2008, 16:56:47 »
À mon avis c'est à cause de ta balise script, qui est à l'intérieur de ta balise form...

Places tes scripts qui contiennent des fonctions dans la balise head. :)