symfony image inside a button?

旧时模样 提交于 2019-12-12 02:47:41

问题


I'm trying to include an image inside a button using symfony1.4 with this code:

<?php 
    echo button_to(image_tag('icon.png')."button_name",'url-goes-here');
?>

But the result i get, instead of what i want is a button with "img src=path/to/the/icon.png button_name" as the value of the button. I've google'd it long enought and found nothing, so i'll try asking here.

In other words:

i'd like to find the way to generate html similar to:<button><img src=..>Text</button> but with a symfony url associated in the onclick option

How can i do it to put an image inside a button with symfony? Am i using the helpers wrong? Thank you for your time!


回答1:


You are using Symfonys button_to function incorrectly. From the documentation:

string button_to($name, $internal_uri, $options) Creates an button tag of the given name pointing to a routed URL

As far as I can tell, the button_to function does not allow for image buttons. Instead, you will probably create the button tag yourself and use symfonys routing to output the url.




回答2:


I finally created my own helper to display this kind of buttons. I know is not very efficient and flexible but works in my case. Here is the code

function image_button_to($img,$name,$uri,$options){
  $sfURL = url_for($uri);
  $sfIMG = image_tag($img);
  if(isset($options['confirm'])){
    $confirm_text = $options['confirm'];
    $jsFunction = 'if(confirm(\''.$confirm_text.'\')){ return window.location=\''.$sfURL.'\';}else{return false;}';
  }else{
    $jsFunction = 'window.location="'.$sfURL.'";';
  }
  $onclick = 'onclick="'.$jsFunction.'"';
  if(isset($options['title'])){
    $title = 'title=\''.$options['title'].'\' ';
  }else{
    $title = '';
  }
  if(isset($options['style'])){
    $style = 'style=\''.$options['style'].'\' ';
  }else{
    $style = '';
  }
return '<button type="button" '.$onclick.$title.$style.' >'.$sfIMG." ".$name.'</button>';
}

With this function as helper, in the templates i just have to:

<?php echo image_button_to('image.png',"button_name",'module/actionUri');?>

hope this be useful for someone ;)



来源:https://stackoverflow.com/questions/8853410/symfony-image-inside-a-button

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!