Bir form elemanının arkasında text / html Ekle?

3 Cevap php

Nasıl Zend Framework bir form elemanının arkasında bir metin ekleyebilir? Diyelim ki, ilk bir etiket var, bir metin girişi alanını sahip etiketin feryat gerçek bir giriş alanı var ama ben giriş alanının arkasında bazı ek metin (2-3 cümle) eklemek istiyorum diyelim. Bu alan için en iyi değeri nedir kısa bir ucu veya öneri gibi bir şey.

3 Cevap

Sadece örneğin, giriş elemanı için bir açıklama ekleyebilirsiniz

$element = new Zend_Form_Element_Text('itemName', array(
      'label' => 'My Label',
      'description' => 'Enter some text'
));

ZF Manuel Bölüm 23.7.3 itibaren. Zend_Form_Decorator_Description:

Hiçbir açıklama varsa, varsayılan olarak, hiçbir çıkış oluşturulur. Açıklaması varsa, o) size dekoratör oluştururken bir etiketi seçeneği geçirerek bir etiket belirlemek olsa, varsayılan bir HTML p etiketi sarılmış, ya da setTag (çağırıyor. Eğer ek sınıf seçeneğini kullanarak etiketi veya setClass () çağırarak bir sınıf belirtebilirsiniz; Varsayılan olarak, sınıf 'ipucu' kullanılmaktadır.

Yani dekoratör değiştirmek gibi bir şey yazmak istiyorum

$element->setDecorators(
    array(
        'ViewHelper',
        'Errors',
        array('Description', array('placement' => 'append', 
                                   'escape' => false, 
                                   'tag' => 'span')),
        array('HtmlTag', array('tag' => 'dd')),
        array('Label', array('tag' => 'dt', 'escape' => false))
 ));

Ayrıca kontrol etmek isteyebilirsiniz this series of tutorials about Zend Form Decorators.

Bir

eklemek için bir unsur seçenek olarak açıklama seçeneğini kullanabilirsiniz (varsayılan dekoratörler ile.) öğesinden sonra, açıklama ile etiketlemek

Sen strateji sonra sadece doğru yerde açıklama konumlandırmak için bazı CSS gerektirir. Gibi bir şey

dd.myelement{
position: relative;
}

dd.myelement p {
position: absolute;
top:0;
right: 0;
}

Muhtemelen çok giriş ve p z-index özelliklerini gerekir:

dd.myelement p {
z-index: 1;
}

dd.myelement input {
z-index: 2;
}

Orada eksik CSS özellik olabilir (ben o bellekten yazdık) ama fikir olsun umut olabilir :)

Richard

Eğer bir dekoratör ihtiyacım var! Onlar bazen biraz karmaşık, ama daha az yararlı değil, muhtemelen biraz modası geçmiş olan, tutorial aşağıdaki kullanarak oldum ama :). Özellikle kullanımını kontrol legend. Bunu yapmak istediğiniz şey için mükemmel olduğunu düşünüyorum.

Bu yardımcı olur umarım!