Project BBcode (PHP&JS)
Hej eksperter!Jeg har arbejdet lidt med at samle et simpelt bbcode system til min personlige blog, selve resultatet virker, altså når jeg henter data fra min database så omskriver mit script linjen "[f]test[/f]" helt korrekt og sætter "test" i fed.
Problemet ligger i at indsætte dataen i mit textarea når jeg skriver en besked.
Eksempel (her skriver jeg i mit textarea box):
"Hej"
jeg markerer så teksten "Hej" og trykker på min <input type="button" onclick="addbbcode('[f]', '[/f]')" value="F">.
Men intet sker. Der bliver ikke tilføjet "[f], [/f]" rundt om "Hej" i mit <textarea name="tekst">
Filer:
functions.php >>
<?
$bb_codes = array(
"[K]" => "<span style=\"font-style:italic;\">",
"[/K]" => "</span>",
"[k]" => "<span style=\"font-style:italic;\">",
"[/k]" => "</span>",
"[F]" => "<span style=\"font-weight:bold;\">",
"[/F]" => "</span>",
"[f]" => "<span style=\"font-weight:bold;\">",
"[/f]" => "</span>",
"[LIST]" => "<div style=\"margin-left:20px;\"><li>",
"[/LIST]" => "</li></div>",
"
- " => "<div style=\"margin-left:20px;\"><li>",
"
function bbcodes($tekst) {
$tekst = nl2br($tekst);
$search = array_keys($GLOBALS["bb_codes"]);
$tekst = str_replace($search, $GLOBALS["bb_codes"], $tekst);
return $tekst;
}
?>
functions.js >>
function addbbcode(startTekst, slutTekst) {
var txtarea = document.forms['Textarea'].elements['tekst'];
if (!txtarea) {
alert('Feltet findes ikke');
}
else {
if (document.selection) {
txtarea.focus();
var valgt = document.selection.createRange();
valgt.text = startTekst+valgt.text+slutTekst;
}
else if (txtarea.selectionStart) {
var start = txtarea.selectionStart;
var slut = txtarea.selectionEnd;
txtarea.value = txtarea.value.substring(0, start)+startTekst+txtarea.value.substring(start, slut)+slutTekst+txtarea.value.substring(slut, txtarea.value.length);
}
else {
txtarea.value += txt;
}
}
}
test.php >>
<form name="Textarea" method="POST" enctype="multipart/form-data">
<input type="button" onclick="addbbcode('[f]', '[/f]')" value="F">
<input type="button" onclick="addbbcode('[k]', '[/k]')" value="K">
<input type="button" onclick="addbbcode('
- ', '
<br>
<textarea name="tekst" class="cmsarea"><? echo $tekst; ?></textarea>
</form>
-- Jeg har sikret mig at alle filer bliver hentet i mit index.php, og jeg ved filerne bliver loadet i siden.
Problemet jeg skal have løst er som sagt den manglende indsættelse af [f], [/f] i mit textarea når jeg klikker på min input type=button.
MVH Michael.