2009-10-19 3 views
4

을 통해 인수를 볼) 그리고 오른쪽에는 왼쪽에있는 내용 중 하나만 보여주는보기가 있습니다. 제 아이디어는 AJAX 방식으로 이것을 달성하는 것입니다. 왼쪽의 목록에서 링크를 클릭하면 오른쪽의보기가 실제 노드로 업데이트됩니다.업데이트 드루팔 내가이 동작을하고 싶습니다 드루팔 6.x의 에 관한 요청이 AJAX

이 문제를 해결하는 가장 좋은 방법은 무엇입니까?

내 아이디어는 2 개의보기가있는 2 개의 열 패널을 만들고, 하나는 (왼쪽) 내용 유형에 대해 필터링을하지 않고, 오른쪽에는 하나의 인수로 표시 할 노드 ID를 가져 오는 것입니다.

하지만 2 개의 뷰를 AJAX와 연결하는 방법은 무엇입니까? (또는 더 나은 방법으로, 오른쪽에서 AJAX 호출로보기를 업데이트하는 방법) 이 가능합니까?

도움이나 아이디어는 정말 환영합니다 감사합니다!

건배 마우로

답변

2

이 확실히 가능하고, 할 매우 어려운 일이 아니다.

당신의 작업은 두 부분으로 나눌 수 있습니다

: 노드 ID (NID)에 소요되는 백엔드에 '콜백'URL을 제공

  1. 과에 오른쪽 패널에 노드를 표시하는 마크 업을 반환 자바 스크립트로 처리 할 수있는 형식. 이것은 PHP에서 일반적인 Drupal 모듈 내에서 수행됩니다. 요점은 평소와 같이 전체 Drupal 페이지를 반환하는 것이 아니라 노드의 마크 업만 반환하는 것입니다.
  2. 왼쪽 패널의 링크를 클릭하여 트리거 될 때 앞의 URL 콜백을 통해 새 노드 마크 업을 검색하고 오른쪽 패널의 내용을 그 노드로 대체하는 프론트 엔드 논리를 작성하십시오. 이 작업은 jQuery와 함께 Drupal javascript API를 사용하여 javascript로 수행해야합니다.

당신은 찾을 수 introduction and example for AJAX in Drupal here. (이것은 단지 이미지, 거의 정확하게 당신이 원하는 것을 수행)

또한 general entry point for JavaScript in Drupal이 더 봐야한다.

3

또한 코드를 변경하지 않고도보기를 변경할 수 있으므로 매우 유연한 빠른 해킹을 수행 할 수 있습니다.

는 최근 비슷한 일이 있고 당신의 작업에 대해 나는 다음을 수행합니다 :

  1. 을 오른쪽 열에를 들어, 노출 필터 (노드 ID)를 만들고 CSS를 사용하여 전체 노출 필터 양식을 숨 깁니다.
  2. jQuery를 사용하여 왼쪽 열의 제목에 클릭 동작을 첨부하십시오.
  3. 클릭 동작은 노드 ID를 가져와 오른쪽 열에서 첨부 된 노출 필터를 찾고 노드 ID를 입력 필드에 입력하고 양식의 .submit()을 실행합니다.

.submit()은 오른쪽 열을 새로 고치는 빌드 인 뷰 잘 디버그 된 아약스 요청을 트리거합니다.

+0

정확히 그게 와서. 일! –