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

16,618

Solution 1

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'));

Solution 2

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'
        ));
?>
Share:
16,618
Ricardo Fiorani
Author by

Ricardo Fiorani

I've started as a Delphi Developer, but found myself in PHP. I have 8 years of experience as software engineer in different companies and different projects.

Updated on June 13, 2022

Comments

  • Ricardo Fiorani
    Ricardo Fiorani almost 2 years

    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.