可能ですが、そのようなことはクライアント側であるため、JavaScriptを使用する必要があります。個人的には、そのような作業には jQuery を使用するのが好きです。これを行う方法の例を次に示します。
class My_Form extends Zend_Form {
$field = $this->createElement('select', 'myselect');
$field->setLabel('Choose to display the form or not');
$field->setMultiOptions(array('1'='Display', '2'=>'Do not display'));
$this->addElement($field);
$field = $this->createElement('text', 'optionaltext');
$field->setLabel('This is an optional field');
$this->addElement($fiel);
}
ここで、レイアウトに jQuery ライブラリを含める必要があります。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript">
最後に、別の .js ファイルを含める必要があります (または、ページの <script> タグにコードを埋め込むだけです)。
$(document).ready(function() {
$(function() {
//Function triggered when changing the value in the drop down
$('#myselect').change(function(event) {
if($('#myselect').val() == 1) {
//Show elements
$('#optionaltext').show();
//The following line shows/hides all the dd/dt wrappers as well
$('[id*=optionaltext]).show();
} else {
//Hide elements
$('#optionaltext').hide();
//The following line shows/hides all the dd/dt wrappers as well
$('[id*=optionaltext]).hide();
}
});
});
});
コードをテストしていないことに注意してください。その日の最初のコーヒーを実際に飲み終える前に頭の上に書いたので...いくつかのバグがあるかもしれません. そうは言っても、やりたいことの良いスタートになるはずです。何か足りないものや見つけられないバグがある場合は、ここで質問してください。お役に立てれば !