Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Yii : How to make a button with an html tag inside the label

I'm trying to use some bootstrap features like the Icon glyphs in the Yii CHtml class, here is my code:

<?php 
   echo CHtml::submitButton('<i class="icon-user"></i> Login', 
       array(
           'class' => 'btn btn-large pull-right'
       )); 
 ?>

But it kinda don't "recognize" the tag and just renders the tag out like the image bellow .enter image description here

does anyone knows how to workaround it (without typing the html tags itself).

Thank you guys.

like image 435
Ricardo Fiorani Avatar asked Jan 28 '13 20:01

Ricardo Fiorani


2 Answers

CHtml::submitButton produces an <input type="submit"> that cannot accept additional HTML as its content. However, you can do things to taste with CHtml::tag:

echo CHtml::tag('button',
                array('class' => 'btn btn-large pull-right'),
                '<i class="icon-user"></i> Login');

This will produce a <button> tag that can take arbitrary HTML as its content.

Update: As frostyterrier points out in the comments, there's a built-in method CHtml::htmlButton that allows you to do this even more easily:

echo CHtml::htmlButton('<i class="icon-user"></i> Login',
                       array('class' => 'btn btn-large pull-right'));
like image 121
Jon Avatar answered Oct 01 '22 10:10

Jon


Try to set 'encode' to false in htmlOptions parameter.

<?php
    echo CHtml::submitButton('<i class="icon-user"></i> Login',
        array(
            'encode' => false,
            'class' => 'btn btn-large pull-right'
        ));
?>
like image 32
SJousse Avatar answered Oct 01 '22 08:10

SJousse