¿Cómo modifico el controlador de envío de formularios?


16

Por alguna razón, necesito reemplazar algunos caracteres (si existen) en cada campo de texto en cualquier forma justo antes de que se almacenen en la base de datos. En otras palabras, necesito un gancho en el que pueda obtener todos los datos enviados y reemplazar sus caracteres.
Encontré esta solución:

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

Pero esta no es una buena idea ya que también tengo que ocuparme del resto del progreso de la presentación. Solo necesito reemplazar algunos personajes. ¿Hay algún gancho para hacer esto? ¿Cuáles son las soluciones?

Respuestas:


22

$form['#submit']almacena una variedad de controladores de envío de formularios. Con el código que proporcionó, lo sobrescribe agregando solo el suyo. Para obtener el resultado que desea, debe agregar su controlador de envío como el primer elemento en la matriz de esta manera:

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

Obtener los valores correctos en las formas correctas y reemplazar algunos caracteres es probablemente un problema mayor en sí mismo. Es posible que desee limitar los formularios / campos que necesita cambiar para asegurarse de no romper nada.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.