답변:
unset()
제출 / 유효성 처리기가 처리 될 때 설정되지 않은 요소가 존재할 것으로 예상 할 수있는 것을 알지 못하므로 양식을 사용 하는 것은 좋은 해결책이 아닙니다. 이로 인해 원치 않는 오류가 발생할 수 있습니다.
양식 요소를 '숨기기'위해 안전하게 사용할 수있는 세 가지 방법이 있습니다
'#type' => 'value'
요소에 사용 하면 요소의 값이 #value
정상적으로 정상적으로 제출 / 확인 함수에 전달됩니다 . 이것이 내가 선호하는 방법입니다.'#access' => FALSE
이 화면에 출력되어서는 안 나타 내기 위해 요소.'#type' => 'hidden'
(이것의 사용은 사용 사례에 달려 있지만, 그렇지는 숨겨진 입력으로 형태로 출력하고자 당신이 할 양식 요소의 값을 숨기려고하는 경우 내가 상상) 바트 등을 제안했다.hide()
은 양식 요소에 사용 하면 안되며 유효성 검사기가 요소에 대해 여전히 실행되므로 전체 양식 제출 프로세스를 쉽게 망칠 수 있습니다. 예를 들어, hide($form['title']);
노드 양식 인 경우 제목 필드가 필요하므로 양식을 제출할 수 없지만 값은 제공되지 않습니다. 위의 3 가지 방법은 순서대로 사용하는 것이 가장 좋습니다. :
drupal_render($form['base']['prices']['sell_price'])
.
drupal_render()
태그 / 토큰 등의 양식을 얻지 못하기 때문입니다. 전체 $form
배열 을 출력하지 않는 한
템플릿 파일을 사용하는 경우 hide ()를 사용하여 물건을 숨길 수 있습니다 .
에서 양식 요소를 숨기려면 최선의 선택 hook_form_alter
일 unset()
수 있습니다.
값을 저장하는 경우 '#type'=> 'hidden' 도 사용할 수 있습니다.
drupal_render($form['base']['prices']['sell_price'])
있지만 form을 표시 하지만 저장하지는 않습니다!