Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace Hm\Forms;
- use Zend\Form\Form;
- use Zend\Form\Element\Text;
- use Zend\Form\Element\Select;
- use Zend\Form\Element\Submit;
- use Zend\Filter\StringTrim;
- use Zend\Filter\Digits;
- use Zend\Validator\StringLength;
- use Zend\Validator\InArray;
- use Zend\Validator\NotEmpty;
- // use Zend\Debug\Debug;
- class HmSelectForm extends Form {
- private $bsnr;
- public function __construct(array $bsnr){
- parent::__construct();
- // <form>-Tag Eigenschaften
- parent::setAttributes([
- 'method' => 'post',
- // 'action' => $url, <-- Muss im View erstellt werden, es sei denn es geht in die layout.phtml
- 'name' => 'SelForm'
- ]);
- // Feld: BSNR
- $this->add([
- 'name' => 'bsnr',
- 'type' => Text::class,
- 'attributes'=> [
- 'class' => 'form-control',
- 'placeholder' => '72xxxxx',
- 'maxlength' => 7,
- 'id' => 'selForm01'
- ],
- 'options' => [
- 'label' => 'BSNR: '
- ],
- ]);
- // Feld: Jahresauswahl
- $this->add([
- 'name' => 'jahr',
- 'type' => Select::class,
- 'attributes'=> [
- 'class' => 'form-control',
- 'id' => 'selForm02'
- ],
- 'options' => [
- 'label' => 'Jahr: ',
- ],
- ]);
- // Button: Submit
- $this->add([
- 'name' => 'auswahl',
- 'type' => Submit::class,
- 'attributes'=> [
- 'class' => 'btn btn-warning',
- 'value' => 'Anzeigen'
- ],
- ]);
- //Definition der Filter und Validatoren
- $this->getInputFilter()->add(
- [
- 'name' => 'bsnr',
- 'required' => true,
- 'filters' => [['name' => StringTrim::class],
- ['name' => Digits::class]],
- 'validators' => [
- [
- 'name' => NotEmpty::class,
- 'options' => [
- 'message' => 'Bitte eine gültige 7-stellige BSNR eingeben!'
- ],
- ],
- [
- 'name' => StringLength::class,
- 'options' => [
- 'min' => 7,
- 'max' => 7,
- 'message' => 'Eine BSNR hat immer %max% Zeichen Länge und enthält keine Buchstaben.'
- ],
- ],
- [
- 'name' => InArray::class,
- 'options' => [
- 'message' => 'Die angegebene BSNR existiert nicht in der Datenbank!',
- 'haystack' => $bsnr
- ],
- ],
- ],
- ]
- );
- }
- public function setOptionData($jahr){
- $this->get('jahr')->setOptions(array_merge($this->get('jahr')->getOptions(),['value_options' => $jahr]));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement