$ form_state [ 'values']와 $ form_state [ 'input']의 차이점


24

누군가이 두 변수의 차이점을 말해 줄 수 있습니까?

$form_state['values']
$form_state['input']

선택적으로 사용되는 몇 가지 작업 예입니다. 드루팔 형태의 아약스와 함께 사용하는 것에 대해 특히 궁금합니다. 양식에서 입력 값을 가져 오기 위해 ajax 콜백에서 사용해야하는 것은 무엇입니까?

답변:


27

여기서 중요한 차이점은 대부분의 경우 $ form_state [ 'values']를 사용해야한다는 것입니다. $ form_state [ 'input'] 배열의 데이터는 원시이고 유효하지 않기 때문입니다.

$ form_state [ 'input']은 원시 입력을 안전하게 처리하는 방법에 익숙하다고 가정하고 여러 단계 양식에 유용합니다. 자세한 내용은 form_builder 를 참조하십시오 ...


1

수행중인 작업을 모르면 $form_state['values']처리 된 양식 값입니다. $form_state['input']원시 데이터입니다. form_builder의 코드를 참조하십시오 : https : //api.drupal.org/api ....


0

99.9 %의 경우에서 $form_state['values']$form_state['input']동일하다.

그러나 입력이 '입력'에 저장되지만 '값'배열에는 저장되지 않으므로 특히 date_popup 필드를 사용할 때 1 %의 일부를주의하십시오 .


0

$form_state['values']$form_state['input']원시 값과 무효화 된 값 을 보유하므로 대부분의 경우에 사용해야합니다 . 또한 $form_state['values']양식 제출이 실패하면 기본값이 전달되지만 $form_state['input']NULL의 경우 전달됩니다.


-4

에서 drupal_form_submit의 기능을 다음과 같은 코드를 볼 수 있습니다

// Populate $form_state['input'] with the submitted values before retrieving
// the form, to be consistent with what drupal_build_form() does for
// non-programmatic submissions (form builder functions may expect it to be
// there).
$form_state['input'] = $form_state['values'];

정확히 동일합니다.


4
위의 함수는 프로그래밍 방식으로 양식을 제출하는 데 사용됩니다. OP 질문에 대답하지 않습니다.
Anil Sagar 15.17에
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.