在zend框架上提交问题

时间:2014-07-16 15:41:38

标签: php css zend-framework zend-form zend-framework-mvc

我没有看到提交按钮上的图标我在文件.php中执行此代码:

$submit = new Zend_Form_Element_Submit('submit');
    $submit ->setLabel(Zend_Registry::get('Zend_Translate')->translate('Send'))
            ->setDecorators(array(
       array( array( 'inner' => 'HtmlTag' ), array( 'tag' => 'i', 'class' => 'icon-arrow-right' ) ),
       array( array( 'wrapper' => 'HtmlTag' ), array( 'tag' => 'span', 'class' => 'add-on', 'id' => 'login') ),
       array('ViewHelper', array('placement' => 'prepend')),
       'Errors',
       array('FormErrors', array('placement'=>'default')) , 
    ));

和文件.phtml

<?php echo $this->element->submit->renderViewHelper(); ?>

并且它不起作用我看到按钮没有图标没有css图标-arrow-right

提前致谢

1 个答案:

答案 0 :(得分:0)

提交元素从setLabel获取值(文本按钮),setValue中的值将被忽略。 另外,您不能将HTML(<span class="add-on" id="login"><i class="icon-arrow-right" ></i></span>)作为HTML属性的值。

使用CSS设置提交按钮的样式。你可以这样做: http://jsfiddle.net/nsU6e/1/

如果您真的不想使用简单的CSS并想要更改标记,那么您需要使用Decorators。像这样的东西:

$submit->setLabel(Zend_Registry::get('Zend_Translate')->translate('Send'))
       ->setDecorators(array(
           array( array( 'inner' => 'HtmlTag' ), array( 'tag' => 'i', 'class' => 'icon-arrow-right' ) ),
           array( array( 'wrapper' => 'HtmlTag' ), array( 'tag' => 'span', 'class' => 'add-on', 'id' => 'login') ),
           array('ViewHelper', array('placement' => 'prepend')),
           'Errors',
           array('FormErrors', array('placement'=>'default')) , 
        ));

另一个更新:

你可以尝试:

$submit->setLabel(Zend_Registry::get('Zend_Translate')->translate('Send'))
        ->setAttrib('class','add-on')
        ->setAttrib('id','login')
       ->setDecorators(array(
           'ViewHelper',
           array( array( 'inner' => 'HtmlTag' ), array( 'tag' => 'i', 'class' => 'icon-arrow-right', 'placement' => 'append' ) ),
           'Errors',
           array('FormErrors', array('placement'=>'default')) , 
        ));

甚至更简单(但需要更改CSS):

$submit = new Zend_Form_Element_Submit('submit');
$submit ->setLabel(Zend_Registry::get('Zend_Translate')->translate('Send'))
        ->setAttrib('class','btn_submit');

和CSS这样:

.btn_submit{
  -webkit-appearance: none;
  -moz-appearance: none;
  -ms-appearance: none;
  border: 2px solid lightskyblue;
  border-radius: 4px;
  background: #0ca6d9 url('/img/myarrow.png') 95% 50% no-repeat;
  padding: 5px 20px;
  color: white;
}