Ich verwende diesen Code, um mein Admin-Formular zu erstellen:
function custom_orders_admin(){
$form = array();
$form['custom_ignore_terms']['ignore_terms'] = array(
'#type' => 'checkboxes',
'#title' => t('Don\'t display these'),
'#default_value' => variable_get('custom_ignore_terms', array()),
'#options' => drupal_map_assoc($termTypes),
'#description' => t("Choose the terms you do not want displayed."),
'#required' => FALSE,
);
return system_settings_form($form);
}
Aber ich merke das wenn ich das mache:
function custom_orders_admin_submit($form, &$form_state) {
exit(var_dump($form_state));
}
Ich kann nicht verlassen. Ich vermute, das liegt daran, dass es system_settings_form()
sich um das Einreichen kümmert. Wie bekomme ich meine Kontrolle zurück? Ich muss eine benutzerdefinierte Verarbeitung in diesem _submit-Handler durchführen ...
'#submit'
Eigenschaft hinzuzufügen ,$form
aber das hat auch nicht geholfen.$form['#submit'] = array('custom_food_orders_admin_submit');
es getan und jetzt funktioniert es. Vielen Dank!Antworten:
Der standardmäßige Submit-Handler wird
$form_id . '_submit'
nur ausgelöst, wenn keine anderen Submit-Handler festgelegt wurden.Da system_settings_form () einen Submit-Handler festlegt, wird der Standardhandler nicht ausgelöst. Sie müssen ihn daher angeben, wenn Sie ihn verwenden möchten.
Das können Sie so machen:
Wenn Sie Ihren Submit-Handler auf diese Weise hinzufügen, wird er vor dem Submit-Handler system_settings_form () ausgeführt.
Wenn Sie möchten, dass Ihre nachher ausgeführt wird, anstatt:
Tun:
Stellen Sie jedoch sicher, dass Sie dies nicht tun:
Dies würde nämlich den Submit-Handler system_sttings_form () überschreiben, der den Zweck der Verwendung der Funktion system_settings_form () zunichte macht.
quelle