ajax 회원가입 예제

보시다시피 AJAX를 구현하려면 약간의 준비와 연습이 필요하지만 두 번째 특성이 되면 쉽게 찾을 수 있습니다. 그것은 아마 이것을 읽는 데 시간이 걸렸고 처음으로 그것을 하는 데 더 많은 시간이 걸릴 것입니다., 하지만 약 15 분에 전체 예제를 코딩. 그것은 말할 필요도없이 가야하지만 난 ajax에 도움을 요청하는 사람들의 대부분은 모든 후크와 아약스 콜백을 구현하는 데 필요한 무엇을 해야할지하지 않습니다 찾을 수 있습니다. 그래서 여기에 처음부터입니다. 이미 모듈을 만드는 방법을 알고 있는 경우 이 단계를 건너뛰거나 완전한 기능을 갖춘 예제 모듈에 대한 코드를 복사합니다. 그래서, 우리는이 예제에 의해 몇 가지를 배울 거 야. jQuery 1.5현재 $.ajax()에서 반환되는 jQuery XMLHttpRequest(jqXHR) 개체는 브라우저의 기본 XMLHttpRequest 개체의 수퍼세트입니다. 예를 들어, 그것은 응답텍스트 및 responseXML 속성뿐만 아니라 getResponseHeader() 메서드를 포함합니다. 전송 메커니즘이 XMLHttpRequest(예: JSONP 요청에 대한 스크립트 태그)가 아닌 다른 개체인 경우 jqXHR 개체는 가능한 경우 기본 XHR 기능을 시뮬레이션합니다.

다음 예제를 테스트하려면 필수 웹 서버를 설정하는 몇 가지 옵션이 있습니다. 이미 내 컴퓨터에 프로그래밍 언어 루비가 있기 때문에 Drupal의 hook_menu를 구현하여 ajax 콜백의 URL을 설정하는 명령을 실행할 수 있습니다. Drupal이 자바 스크립트에 정보를 전달하는 방법입니다. ajax_example.module 파일에 이 코드를 붙여넣은 메뉴 후크 만들기: nonce가 올바르지 않거나 설정되지 않으면 Ajax 호출이 죽습니다. 이렇게 하면 스크립트에서 잘못된 Ajax 요청을 차단합니다. 기본적으로 Ajax 요청은 GET HTTP 메서드를 사용하여 전송됩니다. POST 메서드가 필요한 경우 형식 옵션에 대한 값을 설정하여 메서드를 지정할 수 있습니다. 이 옵션은 데이터 옵션의 내용을 서버로 전송하는 방법에 영향을 줍니다. POST 데이터는 항상 W3C XMLHTTPRequest 표준에 따라 UTF-8 charset을 사용하여 서버로 전송됩니다. 당신은 이미 워드 프레스에서 아약스를 사용하는 것은 워드 프레스의 외부에서 사용하는 것보다 약간 다르다는 것을 알 수 있습니다, 당신은 두 가지를 고려해야합니다 : 마지막 하나는 익명의 기능을 포함하는 성공이다. 아약스 호출이 완료되면 발사됩니다.

위의 코드에서는 사용자가 `나중에 읽기` 링크를 클릭할 때 호출되는 함수를 만들었습니다. 이 함수 내에서 는 데이터 메서드를 사용하여 게시물 ID를 잡고 `rml_post_id` 변수에 저장합니다. 그 후 jQuery `$.ajax()` 메서드를 사용하여 Ajax 호출을 만들었습니다. 이 메서드는 이 문서의 앞에서 설명한 대로 여러 속성을 사용 합니다. 하나씩 설명하겠습니다. “ajax_example”라고 하는 경로 “/사이트/모든/모듈/사용자 지정/” 경로에 폴더를 만듭니다. 모든 경로는 일반적으로 Drupal 설치 루트를 기준으로 합니다: /var/www/html/sitename 설명: 비동기 HTTP(Ajax) 요청을 수행합니다. Ajax 요청은 시간이 제한되어 있으므로 오류를 포착하고 처리하여 더 나은 사용자 환경을 제공할 수 있습니다.

요청 시간 초과는 일반적으로 기본값으로 남아 있거나 시간 초과 옵션을 사용하여 특정 요청에 대해 재정의되지 않고 $.ajaxSetup()을 사용하여 전역 기본값으로 설정됩니다. 이러한 종류의 서버 측면 처리를 수행하기 위해 워드 프레스는 우리에게 두 가지 액션 후크, wp_ajax_my_action 및 wp_ajax_nopriv_my_action을 제공합니다. 첫 번째는 로그인한 사용자에 대해서만 작동하며 두 번째 는 사용자가 로그인하지 않은 경우에 유용합니다. 우리의 예제 플러그인은 로그인 된 사용자만 을 위해 설계 되었기 때문에, 우리는 첫 번째 를 사용합니다. my_action은 wp_ajax_ 후크의 접미사이며 원하는 대로 이름을 지정할 수 있습니다.