2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【超基本】jQueryのFormDataを非同期通信で使う

Posted at

初投稿です。自分用の備忘録のために残します。

##おことわり
rails, jqueryを初めて3週間のプログラミング超初心者です。間違っている箇所がありましたら、声をかけていただけると幸いです。

##FormData

FormData オブジェクトは、XMLHttpRequest を使用して送信するためのキーと値のペアのセットを収集可能にします。本来はフォームデータの送信に使用することを想定していましたが、キーのついたデータを伝送するためにフォームとは独立して使用することもできます。伝送されるデータは、フォームのエンコードタイプが multipart/form-data に設定されている場合に、submit() メソッドで送信する際に使用するデータと同じ形式です。
参照:[MDN]
(https://developer.mozilla.org/ja/docs/Web/Guide/Using_FormData_Objects)

つまり、指定したHTMLのクラスやidをしているすることで、そのフォームに入力されたキーと値を引っ張ってこれるというオブジェクト。
「XMLをしようして・・・」と書いてありますが、JSON形式でもOK

##例えば

message.js
$('#new_message').on('submit',function(e){
    e.preventDefault();
    var formData = new FormData(this);

3行めのFormData(this)のthisは1行目の#new_messageのこと。
それをformDataという変数に突っ込んでいます。

じゃあ、#new_messageにはどんなキーがあるのかというと、
 

create.json.jbuilder
json.content    @message.content
json.name       @message.user.name
json.time       @message.created_at.to_s
json.id         @message.id
json.img_url    @message.image

ここでは「キー」というのは、データベースに登録したカラムのことでcontentだったり、created_atだったりします。
「値」はフォームなので、ユーザーが入力したものになります。timeとかはメッセージを入力した時間ですね。
 

これらの「キー」と「値」をセットにし、JSON(またはXML)形式で引っ張ってくるのがDataFormオブジェクトです。

##この記事を書くのに使用したページ
1.[MDN] (https://developer.mozilla.org/ja/docs/Web/Guide/Using_FormData_Objects)
2.Markdown書き方メモ
3.[Markdown記法 チートシート] (https://qiita.com/Qiita/items/c686397e4a0f4f11683d#lists---%E3%83%AA%E3%82%B9%E3%83%88)

2
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?