如何在PHP中创建WYSIWYG编辑器

Jon*_*ona 3 php wysiwyg

我正在尝试用PHP创建一个WYSIWYG编辑器.到目前为止我得到了这个(我是新btw):

HTML:

   <form action="" method="POST">
        <select name="fontSize" onchange="this.form.submit();">
            <option>Font Size</option>
            <option value="14px">14px</option>
            <option value="24px">24px</option>
            <option value="34px">34px</option>
        </select>
    </form>

    <form action="" method="POST">
        <textarea name="bodyText" style="width:500px;height:200px;font-size:<?php echo $fontSize; ?>"></textarea>
    </form>
Run Code Online (Sandbox Code Playgroud)

PHP:

<?php

$fontSize = $_POST['fontSize'];

switch($fontSize)
{
    case "14px":
    $fontSize = "14px";
    break;

    case "24px":
    $fontSize = "24px";
    break;

    case "34px":
    $fontSize = "34px";
    break;

    default:
    $fontSize = "12px";
}

?>
Run Code Online (Sandbox Code Playgroud)

问题是,当我从下拉菜单中选择一个新的字体大小时,整个文本区域的字体大小会发生变化,而我希望能够突出显示特定的单词或字母,并且只有该变化的字体大小而不是整个文本区域.怎么去这个?

Fel*_*ing 5

你可以这样做(理论上),但是必须使用它的用户会对它不满意.问题是,每次按下一个按钮,页面都会刷新.这意味着表单的内容被发送到服务器,在那里修改并发回.

仅仅为了改变字体,响应时间太长.用户无法熟悉此编辑器.

获得的方法确实是使用JS WYSIWYG编辑器来处理客户端的所有格式化等(其他答案链接到其中).

尤其是您所要求的,即仅更改突出显示的文本,并非易事.您可以通过发送两个附加字段来执行此操作,这些字段将起始端保持为突出显示文本的结束点.这些必须通过JS更新.

没有JS,你无法做到这一点.如前所述,文本在服务器端被修改.您无法通过使用文本来弄清楚用户正在做什么.

帮自己一个忙,不要试图这样做.这真的不值得努力.