1. ホーム
  2. ジャバスクリプト

[解決済み】JSオブジェクトをフォームデータに変換する

2022-04-10 22:22:43

質問

JSオブジェクトを以下のように変換することができます。 FormData ?

なぜこのようなことをしたいかというと、〜100のフォームフィールドの値から構築したオブジェクトがあるからです。

var item = {
   description: 'Some Item',
   price : '0.00',
   srate : '0.00',
   color : 'red',
   ...
   ...
}

現在、フォームにファイルをアップロードする機能を追加するよう求められていますが、もちろん JSON を介しては不可能なので、次のように移行する予定です。 FormData . そこで、私のJSオブジェクトを次のように変換する方法はありますか? FormData ?

解決方法は?

オブジェクトがあれば、FormDataオブジェクトを作成し、そのオブジェクトの名前と値をformDataに追記することが簡単にできます。

コードが掲載されていないので、一般的な例です。

var form_data = new FormData();

for ( var key in item ) {
    form_data.append(key, item[key]);
}

$.ajax({
    url         : 'http://example.com/upload.php',
    data        : form_data,
    processData : false,
    contentType : false,
    type: 'POST'
}).done(function(data){
    // do stuff
});

に関するドキュメントに、より多くの例があります。 MDN