Comment modifier le gestionnaire de soumission de formulaire?


16

Pour une raison quelconque, je dois remplacer certains caractères (s'ils existent) dans chaque champ de texte sous n'importe quelle forme juste avant de les stocker dans la base de données. En d'autres termes, j'ai besoin d'un crochet dans lequel je pourrais obtenir toutes les données soumises et remplacer leurs caractères.
J'ai trouvé cette solution:

function hook_form_alter($form, $form_state, $form_id) {
  $form['#submit'] = 'my_custom_submission_function';
}

Mais ce n'est pas une bonne idée car je dois aussi m'occuper du reste de la progression de la soumission. J'ai juste besoin de remplacer certains caractères. Y a-t-il un crochet pour le faire? Quelles sont les solutions?

Réponses:


22

$form['#submit']stocke un tableau de gestionnaires d'envoi de formulaires. Avec le code que vous avez fourni, vous l'écrasez en ajoutant uniquement le vôtre. Pour obtenir le résultat souhaité, vous devez ajouter votre gestionnaire de soumission comme premier élément du tableau comme ceci:

array_unshift($form['#submit'], 'mymodule_custom_submission');

Obtenir les bonnes valeurs dans les bonnes formes et remplacer certains caractères est probablement un problème plus important en soi. Vous voudrez peut-être affiner les formulaires / champs que vous devez modifier pour vous assurer de ne rien casser.


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.