Come posso modificare il valore del campo dopo la presentazione Drupal modulo web
-
02-10-2019 - |
Domanda
Sto cercando di modificare il valore del campo presentato con php (lato server) per essere inviato via e-mail e scritto a db:
hook_form_alter(&$form, &$form_state, $form_id)
cambiamento di valore sembra facile, ma non succede nulla dopo la cambio. opere Hook.
Soluzione
hook_form_alter
manipola solo la forma prima che venga resa:
Eseguire modifiche prima di un modulo è reso.
Date un'occhiata al questa API commento , dove qualcuno dà un bell'esempio di come fare qualcosa dopo che il modulo è stato inviato. C'è anche un'azione _submit($form, &$form_state)
(il determinato posto dai punti di collegamento che fuori) che avete bisogno di grilletto. Si può fare tutto il vostro alterazione necessaria lì. Un po 'più descrizione può essere trovata negli esempi dall'API
Altri suggerimenti
First add a submit action in hook_form_alter and second alter the form_state value in form submission.
function custom_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'your-webform-id') {
$form['#submit'][] = 'xyz_form_submit';
}
}
function xyz_form_submit($form, &$form_state) {
// here you can edit $form_state value before final submit
}