Javascript, php et textarea...
jeune prog
Messages postés
55
Statut
Membre
-
frodon -
frodon -
Bonjour à tous,
J'ai un problème avec se code:
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...
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...
A voir également:
- Javascript, php et textarea...
- Easy php - Télécharger - Divers Web & Internet
- Telecharger javascript - Télécharger - Langages
- Expert php pinterest - Télécharger - Langages
- A javascript error occurred in the main process - Forum Windows
- A javaScript error occurred in the main process - Forum Handicap / Accessibilté
5 réponses
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;
}
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?
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?
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]');
javascript:AddText('[b]',(txtarea.value).substring(txtarea.selectionStart,
txtarea.selectionEnd),'[/b]');
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question