[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • yform validierung mit abhängigkeiten
Seite 1 von 1

yform validierung mit abhängigkeiten

Verfasst: 12. Dez 2018, 19:21
von timeceeper
Hallo Zusammen,

trotz doku un internet suche schaffe ich es nicht, einige Formularfelder nach bestimmten Abhängigkeiten zu prüfen.

z.B. möchte ich eine adresse etc. erst auf "empty" prüfen, wenn eine checkbox aktiviert ist.

das Formular siet ungefähr so aus:

Code: Alles auswählen

$yform->setValueField('checkbox', array("diff_shipping_address", "Abweichende Lieferadresse"));

$yform->setValueField('text', array("shipping_firstname", "Vorname"));
$yform->setValueField('text', array("shipping_lastname", "Nachnamen"));
...
jetzt soll das erst validiert werden, wenn diff_shipping_address checked ist.

Code: Alles auswählen

$yform->setValidateField('empty', array("shipping_firstname", "Bitte einen Vorname eingeben."));
$yform->setValidateField('empty', array("shipping_lastname", "Bitte einen Nachnamen eingeben."));
...
erst habe ich versucht, das mit $yform->getFieldValue zu lösen:

Code: Alles auswählen

$diff_shipping_address = $yform->getFieldValue('diff_shipping_address');
if($diff_shipping_address){
    $yform->setValidateField('empty',..
     ....
}
aber das geht nicht.
$diff_shipping_address ist immer NULL


Ich habe es auch mit einer customfunction versucht,

Code: Alles auswählen

$yform->setValidateField('customfunction', array("diff_shipping_address", "my_class::validate_diff_shipping"));
Und da bekomme ich 4 Argumente geliefert, aber kann mit dem letzten nichts anfangen.

Gibt es da eine Lösung?

vielen Dank
Grüße
Andy

Re: yform validierung mit abhängigkeiten

Verfasst: 20. Jan 2019, 19:13
von Peter.Bickel
Falls es noch aktuell ist – das müsste so in der Art funktionieren:

Code: Alles auswählen

if (rex_request('diff_shipping_address','int','') == 1) {
$yform->setValidateField('empty', array("shipping_firstname", "Bitte einen Vorname eingeben."));
$yform->setValidateField('empty', array("shipping_lastname", "Bitte einen Nachnamen eingeben."));
}