Verwenden Sie nicht , da möglicherweise weitere "Senden" -Rückrufe ausgeführt werden müssen. Die Funktion unterbricht diese.
Verwenden Sie stattdessen die $form_state['redirect'] = ...
http://api.drupal.org/api/drupal/includes!form.inc/function/drupal_redirect_form/7
function create_custom_form_submit($form, &$form_state) {
....
if(..)
$form_state['redirect'] = 'abc';
else
$form_state['redirect'] = 'xxx';
}
Da diese Funktion die gleiche Form ID (create_custom_form
) hat - mit dem Wort „_submit“ angehängt, dann wird diese Funktion automatisch ausgeführt werden und so besteht keine Notwendigkeit, Hinzufügen von Rückmeldungsrückrufen in das Formular.
Wenn Sie möchten, dass eine zusätzliche Funktion beim Senden ausgeführt wird, sollten Sie tun, wie Hamza vorgeschlagen hat, nur Ihre zusätzliche Funktion wird einen anderen Namen haben. z.B.
function create_custom_form($form, &$form_state) {
$form['#action'] = "#";
....
// Add any additional callbacks to call before any redirects happen
$form['#submit'][] = 'create_custom_form_additional_submit_callback';
$form['#submit'][] = ...
}
function create_custom_form_additional_submit_callback($form, &$form_state) {
// Do something before redirect
...
}
Im obigen Beispiel:
create_custom_form_additional_submit_callback
UND
create_custom_form_submit
(weil seine bekam den gleichen Namen mit '_submit' angehängt)
wird ausgeführt und erst wenn beide beendet sind, wird die Weiterleitung ausgeführt.
Fügen Sie den Handler zu Ihrer Submit-Schaltfläche durch '$ form ['submit'] = array ('create_custom_form_submit');'. –