Показать сообщение отдельно
  #3 (permalink)  
Старый 17.09.2016, 08:38
Аспирант
Отправить личное сообщение для Salvat Посмотреть профиль Найти все сообщения от Salvat
 
Регистрация: 22.02.2016
Сообщений: 98

рони, можно, коды имеются. Вот один из примеров.

<?php
if($_POST) {
    echo '<pre>';
    print_r($_POST);
    echo '</pre>';
}
?>
<!DOCTYPE HTML> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<style>
.boxedit {
    display: none;    
}
.editor {
    width: 500px;
    height: 300px;
    border: 1px solid #ccc;
}
</style> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script>
var edt = '<div class="smiles"><img sml=":-*" src="smile/1.gif"><img sml=":)" src="smile/2.gif"><img sml=":(" src="smile/3.gif"></div><div class="editor" contenteditable="true"></div><textarea></textarea>';

$(function() {
    $('span[data-msg]').click(function() {
        var p = $(this.parentNode);
        if(!p.next('.boxedit').length) {
            
            $('<div class="boxedit">').insertAfter(p)
                                   .append(edt)
                                   .find('textarea').attr('name', 'comment['+$(this).data('msg')+']').hide()
                                   .end()
                                   .find('.smiles').on('click', 'img', function() {
                                        document.execCommand('insertHTML', false, ' <img sml="'+this.getAttribute('sml')+'" src="'+this.src+'"> ');
                                        $('.editor').focus()
                                   })
                                   .end()
                                   .slideDown(300)
                                   .find('.editor')[0].oninput = function() {
                                        $(this).closest('form')
                                               .find('textarea')
                                               .val(this.innerHTML
                                                        .replace(/&nbsp;/g,' ') //заменить неразрывное пространство
                                                        .replace(/<br>/g, '\n') //заменить html-перевод строки
                                                        .replace(/<img[^>]+>/g, function(i) { //смайлы
                                                            //заменить на мнемонику
                                                            //хотя могут быть нежелательные последствия
                                                            //что можно наблюдать например в Скайп, и в этом сообщении
                                                            //но можно воспользоваться ВВ-тегом
                                                            //а изображения смайлов могут иметь различные атрибуты
                                                            //которые можно обрабатывать здесь и подставляя их в ВВ
                                                            return i.match(/sml="([^"]+)"/)[1] 
                                               }))
                                   }
        }
    })
});
</script>     
</head> 
<body>
<form autocomplete="off" method="post">
<p>text <span data-msg="123">Add comment</span></p> 
<br><br><button>Send</button>    
</form>
</body> 
</html>

Это мне человек писал с форума под ником laimas, мы с ним это ТЗ обсуждали в ПМ. Я скидывал скайп для связи, т.к. редко на форуме бываю, но человек так и не вышел на связь. Поэтому и пришлось создать в соответствующем разделе объявление.
Ответить с цитированием