양식 제출 핸들러를 어떻게 변경합니까?


16

어떤 이유로 든 모든 텍스트 필드의 일부 문자 (있는 경우)를 데이터베이스에 저장하기 직전에 어떤 형식 으로든 바꿔야합니다. 즉, 제출 된 모든 데이터를 가져 와서 문자를 바꿀 수있는 후크가 필요합니다.
이 솔루션을 찾았습니다.

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

그러나 나머지 제출 과정도 처리해야하기 때문에 이것은 좋은 생각이 아닙니다. 일부 문자 만 교체하면됩니다. 이걸 할 수있는 고리가 있습니까? 해결책은 무엇입니까?

답변:


22

$form['#submit']양식 제출 핸들러 배열을 저장합니다. 제공 한 코드를 사용하면 자신 만 추가하여 코드를 덮어 씁니다. 결과를 얻으려면 제출 핸들러를 다음과 같이 배열의 첫 번째 요소로 추가해야합니다.

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

올바른 형식으로 올바른 값을 얻고 일부 문자를 바꾸는 것은 아마도 그 자체로 더 큰 문제 일 것입니다. 어떤 것도 깨지 않도록 변경해야 할 양식 / 필드를 좁힐 수 있습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.