• Willkommen im Zend Framework Forum

    ZF1 Zend Framework 1 + ZF2 Zend Framework 2

    Das Zend Framework Forum ist seit 2006 die erste Anlaufstelle für Zend Framework Entwickler in Deutschland. Mit über 70.000 Beiträgen und einer steigenden Nutzerzahl bietet das Forum hilfreiche Themen und ZF-Tutorials für professionelle Entwickler, fortgeschrittene Programmierer sowie Zend Framework Einsteiger.
    Wenn dies Dein erster Besuch in der Zend Framework Community ist, lies bitte zuerst die Hilfe - FAQ durch. Du musst Dich registrieren, bevor Du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um die Registrierung zu starten. Du kannst auch jetzt schon Beiträge lesen. Hier im Forum findest Du die Zend Framework Hilfe, die Du suchst!

    Grüße an alle Zend Framework Entwickler. Das Team vom Zend Framework Forum!

    Drupal Agentur

checkbox validation

Ariane Sardinas

New member
Hallo Leute,

ich habe ein neues Element von typ Checkbox erstellt. Es sieht so aus:
PHP:
$CMGRP = new Zend_Form_Element_Checkbox('CMGRP');
        $CMGRP ->setLabel('Ich bestätige....')
        ->setDecorators(array( array('ViewHelper', array('helper' => 'formCheckbox')),
                        array('Errors'),
                        array('HtmlTag', array('tag' => 'dd')),
                        array('Label',  array('tag' => 'dt', 'placement' => 'APPEND')),
                        ))
        ->setRequired(true)
        
        ->setUncheckedValue('')
        ->addErrorMessage('Sie müssen den Richtlinien zum Datenschutz zustimmen');
Mein Controller sieht so aus:
PHP:
          $form = new User_Form_DatenschutzForm();
            $this -> view -> form = $form;
            if ($this -> _request -> isPost()) {
             $formData = $this -> _request -> getPost();

              if ($form ->isValid($formData)) {
            }
}
Das ganze erzeugt folgendes HTML:
PHP:
<dd><input type="hidden" value="" name="CMGRP">
<input id="CMGRP" type="checkbox" value="1" name="CMGRP">
<ul class="errors"><li>Sie müssen den Richtlinien zum Datenschutz zustimmen</li></ul></dd>
Meine Frage: Warum erscheint die Errors wenn man die Seite aufruft, obwohl man noch nicht auf das absenden geklickt hat?

Wie schafft man dass die Error Meldungen auftretten, erst wenn man auf das absenden klickt?
Vielen Dank in Voraus
 
Zuletzt bearbeitet:

Kaiuwe

Super-Moderator
Meine Frage: Warum erscheint die Errors wenn man die Seite aufruft, obwohl man noch nicht auf das absenden geklickt hat?
Weil du von Anfang deinem Formularfeld eine Fehlermeldung zuweist.
PHP:
->addErrorMessage('Sie müssen den Richtlinien zum Datenschutz zustimmen');
Dies brauchst du aber gar nicht selbst zu tun, denn das macht „Zend_Form“ für dich.

Du möchtest bestimmt nur den Text anpassen, welcher ausgeben wird wenn die Checkbox nicht markiert wurde.
Eine Variante:
PHP:
$CMGRP->addValidator(
    'NotEmpty',
    true, // $breakChainOnFailure
    array(
        'messages' => array(
            Zend_Validate_NotEmpty::IS_EMPTY => 'Sie müssen den Richtlinien zum Datenschutz zustimmen',
        ),
    )
);
 
Oben