2010-11-23 19 views
2

に動作していないので:書き換えにserialize()は、私は、このAjaxの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.と呼ばれる外部ファイルにあります

「show.html」というhtmlファイルにajax.jsが含まれています。 jquery.jsをshow.htmlにも含めます。

シリアライズを有効にしようとしましたが、シリアライズを実行する直前にコードが終了しています。 なぜ私は考えていない。しかし、私はそれを引き起こしているシリアライズだと確信しています。

これを簡単に修正することは可能ですか?それで、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

私の更新を見てください –

関連する問題