2012-08-02 5 views
0

다음 코드를 실행하면 매개 변수가 url에 나타나고 테이블 내의 내부 HTML이 변경되지 않습니다. 설명서에는 데이터가 제공 될 때 기본 요청 방법이 POST라고 나와 있습니다. 양식 제출을위한 기본 동작 차단

$('form').submit(function() { 
    var data = $(this).serializeArray(); 
    $('#items-table').load("drawer.php", data) 
}); 

data

MM=01&dd=01&yyyy=2001&HH=12&mm=00&ss=00&entername=Dr.+Clock&optionsRadios=option3&enteritemid=로 정확하게 출력되고 있지만, 현재 페이지가 아닌 부하() 함수 drawer.php에서 식별 된 페이지를 매개 변수로 보인다.

편집 : 나는 문자열이 아닌) 확인 객체가 (로드 두 번째 매개 변수로 전달 될 수 있도록 serializeArray()를 사용하는 경우에도, 나는 여전히 GET 요청이라는 것을 발견하고 현재 페이지의 URL 이득이를 매개 변수. "drawer.php"의 응답이 div에 표시되지 않습니다.

SECOND EDIT : 제출 기능의 끝에 return false; 줄을 포함하지 않았기 때문에 양식의 조치를 가로 채지 못했습니다.

+3

$ 데이터 또는 데이터 ?? –

+0

어디서 읽었습니까? 설명서에서 찾을 수 없습니다. http://api.jquery.com/load-event/ – Nope

+1

@ François Wahl : 잘못된 페이지, 여기를보십시오 http://api.jquery.com/load/ –

답변

1

제출 기능의 끝에 return false; 행을 포함하지 않았기 때문에 양식의 조치를 가로 채지 못했습니다. 이 라인을 포함하면 문제가 해결되었습니다.

0

데이터가 개체로 제공되면 POST 메서드가 사용됩니다. 그렇지 않으면 GET으로 간주됩니다. serialize() 방법은 &와 delimated 텍스트 문자열을 생성하고 또한 $data 대신 data을 사용했기 때문에

$('#items-table').load("drawer.php", {form_data:data}) 

은 그래서 object/{} 대신 string 전달합니다.

0
당신은 var data = $(this).serialize();

기타 문서를 사용하는

는 말한다 :

.serialize() 메소드는 표준 URL 인코딩 된 표기법에 텍스트 문자열을 만듭니다.

http://api.jquery.com/serialize/

당신은 POST를 사용하는 부하의 두 번째 매개 변수로 객체를 제공해야합니다.