Вы можете сделать это (теоретически), но пользователи, которые должны использовать это, не будут довольны этим.Проблема в том, что при каждом нажатии кнопки страница обновляется.Это означает, что содержимое формы отправляется на сервер, изменяется там и отправляется обратно.
Например, для изменения шрифта время ответа слишком велико .Пользователь не будет работать комфортно с этим редактором.
Способ получить действительно - использовать редактор JS WYSIWYG, который обрабатывает все форматирование и т. Д. На стороне клиента (на который ссылаются другие ответы).
Особенно то, что вы просили, то есть только изменение выделенного текста, не тривиально для решения .Вы можете сделать это, отправив два дополнительных поля, которые содержат начальную, конечную и конечную точки выделенного текста.Они должны быть обновлены через JS.
Вы не можете достичь этого без JS.Как уже было сказано, текст изменяется на серверной стороне .У вас нет возможности выяснить, что пользователь делает, просто используя текст.
Сделайте себе одолжение и не пытайтесь сделать это .Это действительно не стоит усилий.