Ich habe ein einfaches Drop-Down-Feld mit zwei Werten und ein abhängigen Dropdown-Feld:Silvers abhängig Dropdown - x ist keine gültige Option
public function areaForm() {
$datasource = function($val) {
if ($val =='yes') {
$areas = DataObject::get('Area', 'ParentID = 0');
return $areas->map('ID', 'Name');
}
if ($val == 'no') {
return false;
}
};
$fields = new FieldList(
TextField::create('Name', 'Area Name:'),
$dropField = DropdownField::create('isChild', 'Is this a sub Area?', array('yes' => 'Yes', 'no'=>'No'))
->setEmptyString('Select one'),
DependentDropdownField::create('ParentSelect', 'Select Parent Area:', $datasource)
->setDepends($dropField)
->setEmptyString('Select one')
);
return new Form($this, __FUNCTION__, $fields, FieldList::create(new FormAction('doSaveArea', 'Save area')));
}
public function doSaveArea($data, $form) {
var_dump($data);
exit;
$name = $data['Name'];
$isChild = $data['isChild'];
if ($isChild === 'no') {
$area = new Area();
$area->Name = $name;
$area->ParentID = 0;
$area->write();
}
elseif ($isChild === 'yes') {
$area = new Area();
$area->Name = $name;
$area->ParentID = $data['ParentSelect'];
$area->write();
}
$this->redirectBack();
}
Wann immer ich versuche, meine Aufgabe zu speichern, indem Sie das Formular abschicken, es gibt mir die gleiche Nachricht:
Bitte wählen Sie einen Wert in der Liste zur Verfügung gestellt. x ist keine gültige Option
Die Werte werden korrekt ausgefüllt. Ich kann sie im Browser sehen, indem ich das Element überprüfe. Aber wenn ich ID 1 zum Beispiel wähle, heißt es "1 ist keine gültige Option" usw. für jedes Gebietsobjekt. Es bleibt bei der Validierung hängen, geht nicht einmal zur Aktion. Ich habe ähnliche Dinge in anderen Teilen der Website/anderen Websites gemacht und sie funktionieren gut.
Warum blockiert diese Validierung fälschlicherweise die Formularübertragung und wie beheben wir dies?