Avatar billede m-rachlitz Nybegynder
08. maj 2008 - 17:31 Der er 1 kommentar og
1 løsning

BBCode projekt (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>",
        "
" => "</li></div>");
   
    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('
    ', '
')" value="LIST">
<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.
Avatar billede jakobdo Ekspert
08. maj 2008 - 22:36 #1
Jeg tror nærmere du skal spørge i javascript kategorien, da det mere omhandler det end php.
Avatar billede m-rachlitz Nybegynder
09. maj 2008 - 07:24 #2
Okay :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester