2013-04-14 2 views
1

설정 api를 사용하여 wordpress에서 테마 옵션 페이지를 만들었습니다. 아약스를 사용하여 페이지의 양식을 업데이트하고 싶습니다. 그들은 처음에는 잘 작동하는 것 같지만 페이지를 새로 고치지 않고 "제출"을 다시 클릭하면 전체 페이지에서 "0"을 표시합니다. Wordpress 기본을 사용하여 오류 및 유효성 검사를 처리하므로 전체 양식이 AJAX를 사용하여 다시로드됩니다. 아약스 요청 자체를 트리거하는 양식이 다시로드되기 때문에 이것이 이상하다는 것을 알고 있습니다. 이에 대한 해결 방법이 있다면 알려주십시오. 코드는 다음과 같습니다AJAX를 통해 Wordpress 양식을 업데이트하는 것이 다시 작동하지 않습니다.

$cg("#cgform").submit(function(){ 
    var b = $cg(this).serialize(); 
    var cgdata = { action : "cg_options_save", cgnonce: cgform.cgnonce ,data: b }; 
    cg_ajax_request(cgdata,cg_form_callback); 
    return false; 
}); 

//Ajax request 
function cg_ajax_request(data,fcall){ 
    $cg.post(ajaxurl, data, function (response) {fcall(response);}); 
} 

cg_ajax_callback 함수는받은 양식을 div에 채 웁니다.

나 문제는 이벤트 처리기가 아약스 호출에 의해 다시로드 형태로 결합되어 있다는 점이다이

답변

2

을 처리 할 수있는 "올바른"방법을 알려 주시기 바랍니다. 두 번째로 양식을 제출하려고하면 사실상 첫 번째 아약스 호출에 삽입 된 새 인스턴스가됩니다.이 인스턴스에는 이벤트 핸들러가 연결되어 있지 않습니다. 대신 on 메서드를 사용하여 이벤트 처리기를 바인딩하면 삽입시 이벤트 처리기를 새 양식에 동적으로 바인딩합니다.

$cg(document).on('submit', "#cgform", function(){ 
    var b = $cg(this).serialize(); 
    var cgdata = { action : "cg_options_save", cgnonce: cgform.cgnonce ,data: b }; 
    cg_ajax_request(cgdata,cg_form_callback); 
    return false; 
}); 
+0

나는 이것을 시도했지만 지금은 처음에도 작동하지 않습니다. 귀하의 설명은 의미가 있지만 해결책이 작동하지 않는 것 같습니다 – ansh

+0

업데이트 된 버전을 사용해보십시오. '$ cg'는 jquery 객체처럼 보였습니다.하지만 전역 jquery 객체에 대한 오버라이드를 추측하고 있습니까? – clav

+0

예 그것의 오버라이드 'jQuery (document) .ready (function ($ cg)' 그리고이 업데이트도 작동하지 않습니다 :( .on() [here] (http : //)의 온라인 문서를 읽었습니다. api.jquery.com/on/) 당신이 가지고있는 방식대로 사용하지 않았다. 그러나 그들의 방법 또한 작동하지 않는다. – ansh

관련 문제