it-swarm-ko.tech

AJAX in Drupal 7을 사용하여 양식 작업 변경)

Drupal save_edit 모듈을 업데이트하여 자동 저장 기능을 추가하고 싶습니다. 이것은 Stack Exchange 자동 저장 (초안 저장 됨)과 유사하게 보입니다. 지금까지 저장 부분이 작동하고 있지만 (새 노드 저장) 다시 저장하면 다른 노드가 생성됩니다 (다른 작업을 수행하도록 지시하지 않았으므로 놀라운 일이 아닙니다).

노드가 이미 저장되었음을 양식에 알리는 방법과 노드 ID가 무엇인지 찾고 있습니다.

사용자가 일반 제출 버튼을 클릭 할 때이 방식으로/node/$ nid/edit를 가리 키도록 양식 작업을 업데이트해야한다고 생각합니다. 노드가 게시됩니다 (설정된 경우).

분명히 나는 ​​이러한 저장 후 페이지를 새로 고치고 싶지 않습니다. 너무 쉬울 것입니다 ;-)

2
user645

더 많은 예제를 보려면 여기에 Lullabot의 jQuery 및 JavaScript in Drupal video tutorial source files 링크가 있습니다. Drupal 7 quickview.module 예제에 주목하겠습니다.

여기에서는 두 번째 인수로 'nojs'또는 'ajax'를 전달하는 페이지 콜백을 사용합니다. Drupal ajax 프레임 워크는 클라이언트가 ajax를 사용하는 경우 페이지의 링크를 'node/[id]/nojs'에서 'node/[id]/ajax'로 변경합니다. 페이지 콜백 함수는 ajax가 있는지 테스트합니다. 그렇지 않은 경우 drupal_goto ()를 사용하여 페이지를 정상적으로 저하시키고 다시로드합니다. 또는 ajax 프레임 워크가 링크를 ajax로 변경 한 경우 HTML이 json 헤더가있는 페이지로 다시 보낼 수 있으며 모두 new command ()를 사용하여 마크 업, javascript Drupal 설정 또는 CSS를 조작 할 수 있습니다. 페이지에서.

이 동일한 기술을 양식 API에 사용할 수 있습니다.

1
Adam S

URL은 중요하지 않으며 여기서 관련이 없습니다.

중요한 것은 $ form_state의 노드 객체입니다. http://api.drupal.org/api/drupal/modules--node--node.pages.inc/function/node_form/7 참조 . 업데이트해야합니다. 그러면 양식이 자동으로 업데이트됩니다 (그리고 nid 등은 값 양식 필드에 저장되기 때문에 클라이언트로 보낼 필요가 전혀 없습니다).

필요한 다른 것이있을 수 있지만 시작해야합니다 ..

1
Berdir