如何在yii2中表现出笑容

时间:2016-01-08 10:14:40

标签: yii2 yii2-advanced-app

我在我的项目中做了微笑的功能它工作正常如果我将该变量放在表单之外,但它不能使用表单,任何人都可以解决如何在textarea中显示图像,这是我的代码

<?php 
    echo $model->Description; (It shows me smily here but in active form it doesnt show)
    $form = ActiveForm::begin([
                'options' => ['enctype'=>'multipart/form-data','id'=>'ajax-post-form'
                ]
            ]); ?>

    <div>
        <?php echo $form->field($model, 'Description')->textarea(['rows' => 6]) ?>
    </div>  <?php ActiveForm::end(); ?>

2 个答案:

答案 0 :(得分:2)

无法以默认<textarea>显示图形。 你只能这样做:
HTML

<textarea id="description" name="description"></textarea>   

<div id="emoticons">
    <a href="#" title=":)"><img alt=":)" border="0" src="http://markitup.jaysalvat.com/examples/markitup/sets/bbcode/images/emoticon-happy.png" /></a>
    <a href="#" title=":("><img alt=":(" border="0" src="http://markitup.jaysalvat.com/examples/markitup/sets/bbcode/images/emoticon-unhappy.png" /></a>
    <a href="#" title=":o"><img alt=":o" border="0" src="http://markitup.jaysalvat.com/examples/markitup/sets/bbcode/images/emoticon-surprised.png" /></a>
</div>

JAVA SCRIPT

$('#emoticons a').click(function() {
    var smiley = $(this).attr('title');
    ins2pos(smiley, 'description');
});

function ins2pos(str, id) {
   var TextArea = document.getElementById(id);
   var val = TextArea.value;
   var before = val.substring(0, TextArea.selectionStart);
   var after = val.substring(TextArea.selectionEnd, val.length);
   TextArea.value = before + str + after;
}

Demo Link

答案 1 :(得分:1)

您可以像在unicode规范中定义的任何其他字符一样在textearea中渲染表情符号。

索引:http://www.unicode.org/emoji/charts/index.html

表情符号列表:http://www.unicode.org/emoji/charts/full-emoji-list.html

在表情符号列表中,您可以参考列&#34;代码&#34;知道unicode值,或复制&amp;将显示的值粘贴到&#34;眉毛中。&#34;如有必要(我认为你应该关闭其他彩色柱子)。

您需要使用可以显示这些字形的字体。使用这种技术,只能显示单色表情符号/表情符号,但它不需要textarea的任何黑客攻击,它只是文本。

此外,您可以使用自己喜欢的UTF风格保存此文本。

出于显示目的,您可能希望将unicode字符转换为图像。当然这是可能的(在textarea之外)但不是强制性的。

希望有所帮助