GET 양식을 만드는 방법


10

예를 들어, 관리 영역의 필터 양식은 GET 양식 일 수 있으며 책갈피 방식으로 호출 가능하며 호출기 페이지에서 필터를 유지할 수 있습니다.

그러한 양식에 어떻게 form_api를 가장 잘 사용할 수 있습니까? _validate 후크가 제출됩니까? _submit 훅을 생략 할 수 있습니까?

예를 들어 뷰 노출 필터는 이런 방식으로 작동합니다. 그러나 이것을 처리하는 뷰의 코드는 복잡하고 복잡하며 단순한 필터 형식으로 사용자 정의 인터페이스를 개발할 때 좋은 예제로 사용하기에는 너무 복잡합니다.


질문을 이해하지 못합니다. GET- 데이터를 얻기 위해 양식을 만들거나 hook_alter 할 수 있습니다.
Letharion

예를 참조하여 질문을 업데이트했습니다.
berkes

답변:


11

다음과 같은 형식의 #method 매개 변수를 사용하십시오.

<?php
  $form['#method'] = 'get';
?>

확실한. 그것은 한 부분입니다. 그러나 유효성 검사, 후크 제출 등은 어떻습니까? 세트입니까?
berkes

2
제출 및 유효성 검증 함수가 내재적으로 호출되도록 양식의 메소드를 게시하도록 설정해야합니다.
레스터 피바디

관련 : form_dataalways_processmethod양식 정의에서 설정하여 유효성 검증 + 프로세스 후크가 실행되도록 할 수도 있습니다. 그러나 이것에 대한 사용 예를 찾을 수 없으며 여전히 키 세트가 form_state포함 method되어 있습니다 post!
artfulrobot

4

누군가이 질문에 걸려 넘어지는 경우를 대비하여 이것은 더 완전한 실제 생활이지만 매우 간단한 예입니다. :)

양식정의하고 싶을 것입니다

function YOURMODULE_search_form($form, &$form_state) {
  $form['#method'] = 'get';
  $form['#action'] = '/search';
  $form['#attributes'] = array('class' => array('mymod-search'));
  $form['search'] = array(
    '#type' => 'textfield',
    '#size' => 20,
  );
  return $form;
}

그리고 당신은 그것을 사용할있습니다

$searchform = drupal_get_form('YOURMODULE_search_form');
$output .= drupal_render($searchform);

마지막 줄은 즉 블록 [ 'content'] 또는 필요한 것입니다.


검색 양식의 $form_state['redirect'] = false;경우 양식이 제출 된 후 경로 재 지정을 사용하지 않도록 제출 핸들러에 넣을 수도 있습니다 .
Ali Gangji
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.