Свинцовый Пепелац

jQuery плагин для вставки смайлов в TEXTAREA

13 августа 2021

На днях решил немного оживить форму добавления комментариев у себя на сайте, добавив посетителям возможность удобной вставки смайлов в текст комментария. Не долго думая, написал для этого простенький jQuery плагин, которым и хочу здесь поделиться.

Плагин очень простой, но со своей задачей справляется на ура. Не буду толочь воду в ступе и сразу перейду к демонстрации его возможностей.

Demo #1:

Код:

<script type="text/javascript">
  $(document).ready(function() {
    $('textarea#demo1').litesmileys();
  });
</script>
<textarea id="demo1"></textarea>

Результат:

Demo #2:

По-умолчанию плагин имеет ограниченный набор смайлов, но его можно легко переопределить при инициализации плагина (больше смайлов/эмоджи можно подсмотреть тут).

Код:

<script type="text/javascript">
  $(document).ready(function() {
    $('textarea#demo2').litesmileys({
      'smileys': [
        ' :) ',
        ' :( ',
        ' :D ',
        '😃',
        '😄'
      ]
    });
  });
</script>
<textarea id="demo2"></textarea>

Результат:

Demo #3:

Из предыдущего примера видно, что в набор смайлов можно включать не только отдельные символы, но и целые строковые выражения, что позволяет использовать этот плагин для формирования списка предустановленных ответов.

Код:

<style type="text/css">
  div[unselectable="on"] > span {
    display: block;
    margin: 0 0 6px 35px;
  }
  div[unselectable="on"]::before {
    content: "Быстрый ответ:";
    font-weight: bold;
  }
<style>
<script type="text/javascript">
  $(document).ready(function() {
    $('textarea#demo3').litesmileys({
      'smileys': [
        'Здравствуйте!',
        'С уважением.'
      ]
    });
  });
</script>
<textarea id="demo3"></textarea>

Результат:

Итоги

Доступный для скачивания архив с плагином вы найдёте в прикреплённых к статье файлах. Плагин, повторюсь, получился простой и надёжный. Буду рад если он поможет кому-нибудь немного оживить ленту комментариев на своём сайте 😊.

Прикреплённые файлы:

    jquery.litesmileys.zip

    Дата публикации: 13 августа 2021
    Сканиваний: 22
    Очень простой и надёжный jQuery плагин для вставки смайлов в текстовое поле (TEXTAREA).

Комментарии посетителей (9):

tester
1 февраля 2022 04:40
Здравствуйте ,как это в бд записать ? тексты пишет смайлы нет, пробовали решить это? 👏👏👏👏👏
1 февраля 2022 06:53
Здравствуйте, tester! Если у Вас смайлы не сохраняются в БД, то подозреваю что это может быть связано с кодировкой базы или поля в таблице. Нужно понимать что эти смайлы — юникодовские символы, так что кодировка должна быть UTF-8 например.
tester
1 февраля 2022 20:08
Да нет, проверял это сразу же и UTF8 и UTF8bm4 не сохраняет.. возможно с аяксом как то по другому надо выводить их..😵
1 февраля 2022 20:31
Вообще, проблемы с сохранением смайлов в БД быть не должно (проверено этим блогом 😁), так что поглядите внимательнее свои скрипты ☝️.
tester
1 февраля 2022 21:08
да я вижу сам ен пойму в чем дело. кодировка ютф8., аяксы пробовал разные и чз json и post и get . отправку onclick и чз id , не хочет... проверял на почту отправку там приходят ,в html тексты выводит.. а в базу не пишет.. у вас тут тоже аякс ?как передали значение ? можете показать пример? спасибо) 👽
1 февраля 2022 21:25
Вы проверьте что у вас приходит с формы на сервер (не важно аяксом или каким другим образом отправляете данные). Если с формы смайлы нормально прилетают, то тогда уже нужно будет смотреть как Вы в БД это всё дело отправляете и как перед этим обрабатываете строку со смайлами. Я использую PDO, и как видите проблем с сохранением смайлов в базу не имею 👐. В самих смайлах вообще никакой магии нет, это просто символы, такие же как и все остальные, так что базе должно быть пофигу на них.
tester
4 февраля 2022 00:16
мож кому пригодится , решил вопрос при подключении базы задал кодировку -
mysql_query("SET NAMES 'utf8mb4_unicode_ci'");
или
mysqli_query($connect, 'SET NAMES="utf8mb4_unicode_ci"');
и поле вывода где запись изменил кодировку на utf8mb4_unicode_ci
😁💪 PS с utf8 записывало только некоторые смайлы, в остальных писало - ??????????? удачи))) 🎸
4 апреля 2022 10:46
У меня PDO на запрос "SET NAMES 'utf8mb4_unicode_ci'" ругается:

SQLSTATE[42000]: Syntax error or access violation: 1115 Unknown character set: 'utf8mb4_unicode_ci'

а вот "SET NAMES utf8mb4" проглотил нормально 😊
Аноним
4 апреля 2022 16:30
😇

Написать комментарий:


Максимальный размер файла загружаемого изображения 10 Мб