Création
d'entreprise
Posez votre question Signaler

Javascript, php et textarea...

jeune prog 54Messages postés 6 mars 2004Date d'inscription - Dernière réponse le 20 août 2008 à 20:04
Bonjour à tous,

J'ai un problème avec se code:

<html>
<head>
<title>Ajouter du texte au milieu d'un textarea</title>
</head>
<body>
<form name="poster" method="POST" action="ee.php" onSubmit="">
<p>Mise en forme du texte :
   <a href="javascript:AddText('[url]','URL','[/url]');">URL</a>
   | <a href="javascript:AddText('[email]','email@email.fr','[/email]');">Email</a>
   | <a href="javascript:AddText('[b]','Texte en gras','[/b]');">Gras</a>
   | <a href="javascript:AddText('[i]','Texte en italique','[/i]');">Italique</a>
   | <a href="javascript:AddText('[u]','Texte souligné','[/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>
<script language="JavaScript" type="text/javascript">
function storeCaret(text)
{ // voided
}

function AddText(startTag,defaultText,endTag) 
{
 if (document.poster.message.createTextRange) 
 {
  var text;
  document.poster.message.focus(document.poster.message.caretPos);
  document.poster.message.caretPos = document.selection.createRange().duplicate();
  if(document.poster.message.caretPos.text.length>0)
  {
   document.poster.message.caretPos.text = startTag + document.poster.message.caretPos.text + endTag;
  }
  else
  {
   document.poster.message.caretPos.text = startTag+defaultText+endTag;
  }
 }
 else document.poster.message.value += startTag+defaultText+endTag;
}
</script>

<textarea
   rows='8'
   cols='30'
   name=message
   wrap=virtual
   onmouseover="this.focus();"
   onkeyup="javascript:storeCaret(this);"
   onclick="javascript:storeCaret(this);"
   onchange="javascript:storeCaret(this);">
</textarea><br>
<input type="submit" name="soumettre" value="envoyer">
</form>
</body>
</html>

<?

$test=$_POST['message'];

print("$test"); 

?>


Il marche super bien,

Seulement comment puis-je faire pour que le naviguateur interprete les balises quand je clique mettons sur gras:

il m'ecrit sa:

[b]gras[/b]

Se qui est logique car c'est se qui est entrer dans le textarea mais comment puis-je le faire interpreter svp?

Merci à tous...
Lire la suite 

Javascript, php et textarea »

5 réponses
Réponse
+1
moins plus
La solution d'esox_ch fonctionne, mais est selon moi un peu dangereuse dans la mesure ou tu vas remplacer tous les crochets... je te sugère plutôt la fonction php preg_replace() qui fait ça très bien. Voilà la fonction que j'utilise, elle prend ton message initial ($test) en argument et renvoi le texte transformé, il ne reste plus qu'à l'afficher :)

function parseTexte($text) {

	$bbcode= array (
		"/\[b\](.+?)\[\/b\]/si",
		"/\[i\](.+?)\[\/i\]/si",
		"/\[u\](.+?)\[\/u\]/si",
		"/\[img\](.+?)\[\/img\]/si",
		"/\[url=(.+?)\](.+?)\[\/url\]/si"
	);

	$htmlcode= array (
		"<b>$1</b>",
		"<i>$1</i>",
		"<u>$1</u>",
		"<img src=\"$1\" border=\"0\">",
		"<a href=\"$1\" target=\"_blank\">$2</a>"
	);

	$text = preg_replace($bbcode,$htmlcode,$text);
	return $text;
}
Ajouter un commentaire
Réponse
+0
moins plus
super!
Une question encore : sur les interface d'édition comme celles de phpBB on peut sélectionner le texte, cliquer sur un bouton, et les balises bb s'affichent toutes seules.
Il y a moyen de faire ça sans javascript?Configuration: Windows XP Internet Explorer 6.0
Ajouter un commentaire
Réponse
+0
moins plus
oui sa peux mais comme toi je cherche
Ajouter un commentaire
Réponse
+0
moins plus
pour imiter phpBB et mettre en gras la selection, on peut le faire peut-etre avec quelque chose comme ca:

javascript:AddText('[b]',(txtarea.value).substring(txtarea.selectionStart,
txtarea.selectionEnd),'/b');
Ajouter un commentaire
Réponse
-1
moins plus
Je suis pas sur d'avoir capter. Mais si c ce que je pensse, il te suffit pas de faire un
str_replace("[","<",$test);
str_replace("]",">",$test);
?

Esox
Eternel Questionneur. Seul et Unique membre de la : SPdLM
=> Société Protectrice des Langages Maltraités
Ajouter un commentaire
Ce document intitulé « Javascript, php et textarea... » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?