2012-10-11 4 views
0

hook_submit 기능을 포함하는 사용자 지정 모듈을 만들었습니다. 리디렉션을하지 않고도이 시점에서 다른 페이지/양식을로드 할 수 있습니까?Drupal 6 - 리디렉션없이 다른 내용로드

제출 기능의 논리에있는 이유는 다른 페이지로 전달하려는 변수가 있지만 게시/가져 오기에 적합하지 않은 복잡한 데이터 구조 (객체, 배열 등)로 구성되어 있기 때문입니다. 데이터.

감사합니다.

+0

다른 페이지/양식을로드하기위한 jquery의로드 기능을 사용하십시오. –

+0

내 PHP 변수를 통과 할 수 없다는 것과 같은 문제가 있습니까? – neolaser

+0

당신은'index.php? id = 3'와 같은 URL을 전달함으로써 변수를 보낼 수 있습니다. –

답변

0

hook_submit()은 양식 처리 체인의 끝 부분입니다. 일단 완료되면, 두 가지 옵션이 있습니다 : 리다이렉트 (drupal_goto()를 통해 또는 $ form [ "# redirect ']를 다른 페이지로 되 돌리는 것) 또는 아무것도하지 마십시오. 그러면 제출 버튼을 클릭 한 페이지가

리디렉션 대상 인 $ _SESSION과 데이터베이스가 가장 많이 사용되는 여러 가지 옵션을 사용할 수 있습니다. 또한 JavaScript의 Drupal.settings 개체에서 복잡한 데이터 값을 설정할 수 있지만 이 경우 PHP를 통해 정보를 구문 분석하는 것이 최종 목표 인 경우 많이 구입하지 않습니다. $ _SESSION 또는 데이터베이스를 사용한다고 가정하고 구체적인 조언을 제공하는 것이 최종 목표에 관한 구체적인 정보가 없으면 특정 정보를 제공하지 않습니다. 캐시가 옵션이 아니므로 추가 지침을 위해 핵심 FAPI와 ctools의 다중 부분 형식 구현에 대해 살펴보십시오.

+1

답변 해 주셔서 감사합니다. 나는 이것이 사실이 아니길 바랐지만 $ _SESSION을 조사 할 것이다. 다시 한 번 감사드립니다 – neolaser

+1

또 다른 옵션은 ajax (D6의 ahah, D7의 ajax)를 통해 양식 "제출"작업을 처리 한 다음 양식이 렌더링 될 때 양식 "스왑"콘텐츠를 갖게하는 것입니다. 희망이 도움이됩니다. –

0

Drupal에서 양식을 제출할 경로를 결정할 수 있습니다. 이를 위해 당신은 당신의 형태로 내부

$form['#action'] = url("<another page>") ; 

을 사용할 수 있으며, 제출 후에는 다른 페이지로 이동합니다 아직도 그 양식에서 모든 포스트 값을 얻을 것이다. 더 많은 사후 값 검색을 위해 $_POST['<element_name>']을 사용하십시오.

희망이 도움이 될 것입니다.

+0

답변 해 주셔서 감사합니다. 내 문제는 양식을 제출할 때 POST/GET 데이터에 비해 너무 큰 복잡한 데이터 형식을 작성한다는 것입니다. 미안 내가 분명히하고 답변을 주셔서 감사합니다 :) – neolaser