나는 시간을 입력하기 위해 작은 폼 엘리먼트를 만들었습니다. 내 응용 프로그램의 몇 곳에서 이것을 필요로하기 때문에, 나는 그것에 대한 별도의 요소를 만들기로 결정했습니다.커스텀에서 선택된 아이템 설정하기 Zend_Form_Element
class EventManager_Form_Element_Time extends Zend_Form_Element
{
public function init()
{
parent::init();
$this->addDecorator('ViewScript', array(
'viewScript' => 'time.phtml'
));
$this->addValidator(new Zend_Validate_Regex('/^[0-9]+:[0-9]+:[0-9]+$/'));
}
public function setValue($value)
{
if(is_array($value))
{
@list($hours, $minutes, $seconds) = $value;
$value = sprintf('%s:%s:%s', $hours, $minutes, $seconds);
}
return parent::setValue($value);
}
}
내가 만든 해당보기 스크립트입니다 :
<?php @list($hours, $minutes, $seconds) = explode(':', $this->element->getValue()); ?>
<dt>
<?= $this->formLabel($this->element->getName(), $this->element->getLabel()); ?>
</dt>
<dd>
<select id="<?= $this->element->getName();?>">
<option value="00">00</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
</select>
<select id="<?= $this->element->getName();?>">
<option value="00">00</option>
<option value="15">15</option>
<option value="30">30</option>
<option value="45">45</option>
</select>
<input id="<?= $this->element->getName(); ?>"
type="hidden"
name="<?= $this->element->getName(); ?>[]"
value="00" />
<?php if(count($this->element->getMessages()) > 0): ?>
<?= $this->formErrors($this->element->getMessages()); ?>
<?php endif; ?>
</dd>
내 문제는 때로는 내가 할 기본 선택 값을 설정하려는 것입니다 여기에
는 FA 그래서 코드 내 양식을 채울 때 내 selecboxes. 문제는 어떻게?나를 도와 줄 수있는 사람이 있습니까?
감사합니다.
컨트롤러 :
$form = new Your_Form();
$form->yourDateElement->setValue('12:30:00');
$this->view->form = $form;
보기 :
<?= $this->form ?>
양식 요소 viewscript : BTW
<?php @list($hours, $minutes, $seconds) = explode(':', $this->element->getValue()); ?>
<dt>
<?= $this->formLabel($this->element->getName(), $this->element->getLabel()); ?>
</dt>
<dd>
<select id="<?= $this->element->getName();?>" name="<?= $this->element->getName(); ?>[]">
<?
for($h = 0; $h < 24; $h++):
$selected = $h == $hours ? ' selected="selected"' : '';
$paddedHours = sprintf('%02d', $h);
?>
<option value="<?= $paddedHours ?>"<?= $selected ?>><?= $paddedHours ?></option>
<? endfor; ?>
</select>
<select id="<?= $this->element->getName();?>" name="<?= $this->element->getName(); ?>[]">
<?
for($m = 0; $m < 60; $m += 15):
$selected = $m == $minutes ? ' selected="selected"' : '';
$paddedMinutes = sprintf('%02d', $m);
?>
<option value="<?= $paddedMinutes ?>"<?= $selected ?>><?= $paddedMinutes ?></option>
<? endfor; ?>
</select>
<input id="<?= $this->element->getName(); ?>"
type="hidden"
name="<?= $this->element->getName(); ?>[]"
value="00" />
<?php if(count($this->element->getMessages()) > 0): ?>
<?= $this->formErrors($this->element->getMessages()); ?>
<?php endif; ?>
</dd>
:
@fireeyedboy는 튜토리얼을 보았지만 입력 상자를 선택 상자로 변경하는 방법을 알지 못했습니다. – sanders