Zend Framework - Statik form elemanları

5 Cevap php

Ben bir kullanıcı yeni bir mağaza oluşturmak ve varolan bir düzenlemek için kullanabileceğiniz bir form var. Bu formu bir mağaza düzenlemek için kullanılan zaman kullanıcı görmek istiyorum ama örneğin düzenleyemez bazı alanlar vardır. store_id. Ben ama hayır şans ile statik unsur çeşit bulmak umuduyla farklı Zend_Form_Elements incelemiş bulunuyoruz.

Yani benim soru nasıl bir kullanıcı düzenleyemezsiniz Zend_Form kullanarak bilgi ekranı, nedir?

Teşekkürler.

5 Cevap

Ben sadece kendimi bu bir iş başardı. Çözüm formNote yardımcı eg unsurları görünüm yardımcısı değiştirmek oldu. $ Element-> helper = 'formNote'. Bunun sonucu değer yerine bir form öğesi içinde olmanın düz metin olarak görüntülenir alır oldu.

Cevaplar için teşekkürler.

Kullanıcılar hala onlar gerçekten istiyorsanız bunu düzenlemek mümkün olacak çünkü readonly tek başına yeterli değildir. Sen $element->setIgnore(true) o Zend_Form_Element POST / GET gelen elemanı doldurmak için çalışacağız olmayacaktır sağlamak olacağını kullanmak gerekir ve o da çift kontrol ediyorum. Eğer veritabanlarına içine alıyorsanız değerler bu öğesi içerebilir asla emin olmak gerekir.

Eğer eleman sadece birlikte daha farklı bir şekilde görüntülenmesini istiyorsanız Son olarak, readonly, bunu yapabilir eleman dekoratörler değiştirerek.

That's very good solution when you don't need to populate the element value when the form is submitted. It's equivalent solution is to use the Form Element method setAttrib() and disable the form element

$formElement->setAttrib('disable','disable')

sadece elemanını dondurma hangi.

Eğer önceki çözümleri kullanarak, alanı doldurmak gerekiyorsa Ama muhtemelen değerini geçecek eklenmiş ek gizli alanını gerekir. Özel form elemanı Gelişmekte iyi tarzı olacak ama sadece ama onun değerini doldurmak bir metin olarak bir form öğesini ayarlamak için bazı zor bir şekilde kullanabilirsiniz böylece her geliştirici tarafından memnuniyetle değil. Bu şekilde gizli bir alan olarak öğesi oluşturduğunuzda, onun değerini ayarlayın ve eleman metin değerini ayarlamak ve görüntülemek için Form Element yöntemi setDescription() kullanmaktır.

$formElement = new Zend_Form_Element_Hidden( 'elName',
        array( 'label' => 'elLabel', 'value' => 'elValue' ) );

$formElement->setDescription( 'elValue' );

Then you can render that hidden element and display the value with the $formElement->getDescription().

$element->setAttrib('readonly', 'true');

http://www.w3.org/TR/html401/interact/forms.html#adef-readonly

Amr Mostafa göre kullanırsanız:

$element->setAttrib('readonly', 'true');

VEYA

$element->setAttribs(array('disabled' => 'disabled'));

Kullanıcı yine POST değerleri göndermek / GET ve DB saklanır.

Beni hesaba POST / GES gelen değerleri alarak yok etmek için tek yolu budur:

$element->setIgnore(true)

Örnek:

$element = new Zend_Form_Element_Text('element');
$element->setIgnore(true);