2010-11-23 2 views
2

작동하지 않기 때문에 :재 작성 직렬화가() 나는이 아약스 jQuery 코드가

var form = document.getElementById('frm'); 
      var data_string = form.serialize(); 
      $.ajax({ 
       type:  "POST", 
       url:  "my_php_file.php", 
       data:  data_string, 
       success: function(data) { 

       }//end success function 
      }) //end ajax call 

이 외부 파일이라고 ajax.js.에를

ajax.js를 "show.html"이라는 html 파일에 포함 시켰습니다. 또한 jquery.js를 show.html에 포함합니다.

나는 serialize 작업을 시도했지만 serialize를 실행하기 전에 코드가 종료되었습니다. 나는 이유를 모른다. 하지만 그것을 일으키는 serialize가 나는 것이 확실합니다.

일부 수정이 쉽기 때문에 직렬화를 사용하지 않습니까?

감사

UPDATE

:

(아래 답변에서)이 코드는 내가 "형태"변수를 경고 할 때, 부분적으로도 작동하는 것 같다 메시지가 양식을 발견 있도록 "HTML 양식 개체"를 말한다 . 그런 다음 "data_string"변수를 경고하면 "frm = undefined"라는 메시지가 표시됩니다.

왜 그런가?

var form = document.getElementById('frm'); 
var data_string = $(form).serialize(); 
+0

http://be.twixt.us/jquery/formSubmission.php ajaxSubmit 플러그인은 ajax 양식을 제출하지 않습니다. – Gazler

답변

7

serialize()은 jQuery에서 가져온 것입니다. 귀하의 문이 형태는 jQuery를에 싸여되지 실패 때문에 :

var form = $('#frm'); 
var data_string = form.serialize(); 

또는를 :

var form = document.getElementById('frm'); 
var data_string = $(form).serialize(); 
+0

+1, 너무 빠르다 :-) –

+0

내 업데이트를 확인하십시오 ... –

+0

@ Camran - 업데이트가 표시되지 않습니다 ... –

1

내 생각 엔 당신이에서 getElementById를 사용하여 "전통"DOM 객체를 참조하고이를 통해 사용하지 않는 것입니다 jQuery (양식을 탐색하고 정보를 추가). 사용해보기 :

var data_string = $('#frm').serialize(); 
+0

제 업데이트를 보시기 바랍니다. –