php - 关于 zend 框架的提交问题

标签 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 icon-arrow-right

提前致谢

最佳答案

提交元素从 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;
}

关于php - 关于 zend 框架的提交问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24785062/

相关文章:

php - 将 for 循环的值放入数组中

css - 声明的特异性与浏览器的特异性

zend-framework - 移除验证器并在 Controller 中将 required 设置为 false

php - 如何为 2 个用户代理加载自定义样式表?

php - *Job Class* 和 Illuminate\Bus\Queueable 在 *Job Class* 的组合中定义了相同的属性 ($connection)

php - 在一个类的函数中写输出是我不应该做的?

zend-framework - Zend 框架与手写字体

layout - 使用 CSS 的特殊 2 列布局

css - 为大量用户定制CSS

php - 如何在 XAMPP 上创建虚拟主机