différence CHtml::button et CHtml::imageButton : envoie serveur ?

Dans un formulaire Yii, j’ai d’abord créé un bouton comme ceci


echo CHtml::button("(+)",array('title'=>"Ajouter un élément",'onclick'=>'js:ajouterElement(this);'));

ma fonction JS "ajouterElement" me sert à ajouter via JS et CSS des éléments dans ma page sans faire aucune appel au serveur.

J’ai ensuite voulu rendre plus joli mon bouton en utilisant une image, comme ceci :


echo CHtml::imageButton(Yii::app()->baseUrl.'/images/dialog-more.png',array('title'=>"Ajouter un élément",'onclick'=>'js:ajouterElement(this);'));

Et depuis j’ai un envoi au serveur de la page courante ??? Comme cela se fait-il ? Quelle est la nuance entre les objets CHtml::button et CHtml::imageButton que je n’ai pas vu ?

Bonjour,

Le button ,

D’apres le code source CHtml::imageButton est de type “submit”:





public static function imageButton($src,$htmlOptions=array())

{

    $htmlOptions['src']=$src;

    $htmlOptions['type']='image';

    return self::button('submit',$htmlOptions);

}




quand Chtml::button ne l’est pas.





public static function button($label='button',$htmlOptions=array())

{

    if(!isset($htmlOptions['name']))

    {

        if(!array_key_exists('name',$htmlOptions))

            $htmlOptions['name']=self::ID_PREFIX.self::$count++;

    }

    if(!isset($htmlOptions['type']))

        $htmlOptions['type']='button';

    if(!isset($htmlOptions['value']) && $htmlOptions['type']!='image')

        $htmlOptions['value']=$label;

    self::clientChange('click',$htmlOptions);

    return self::tag('input',$htmlOptions);

}




En espérant que ce soit ça !

Amicalement Garfield

J’ai trouvé la solution un simple CHtml::image :


CHtml::image(Yii::app()->baseUrl.'/images/dialog-more.png', 'Ajouter élément', array('onclick'=>'js:ajouterElement(this);','class'=>'btn_troncon'));