AJAXのない通常のフォームを使用してオブジェクトの配列を送信しようとしていますが、リクエストボディがオブジェクトの配列に解析されるのではなく、オブジェクトの名前に対応するフィールドが多くあります。AJAXなしでオブジェクトの配列をPOSTすることは可能ですか?
プリミティブの配列を送信するときに、同じ名前の入力を数多く入力するだけで、入力されることがわかります。しかし、私は複雑なオブジェクトにこれを適用することで私の頭を包んでいるようには見えません。
マイフォームコードは非常に簡単です:私は私の問題を示すサンプルリポジトリを作った
<div class="col-sm-9">
<div class="row">
<div class="col-md-6">
<div class="form">
<div class="form-group">
<label for="attachment[0].name" class="control-label">Name</label>
<input name="attachment[0].name" class="form-control" value="First Name" type="text">
</div>
<div class="form-group">
<label for="attachment[0].uri" class="control-label">URI</label>
<input name="attachment[0].uri" class="form-control" value="First URI" type="text">
</div>
<div class="form-group">
<label for="attachment[0].description" class="control-label">Description</label>
<textarea rows="4" value="First Description" name="attachment[0].description" class="form-control">First Description</textarea>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form">
<div class="form-group">
<label for="attachment[1].name" class="control-label" >Name</label>
<input name="attachment[1].name" class="form-control" value="Second Name" type="text">
</div>
<div class="form-group">
<label for="attachment[1].uri" class="control-label">URI</label>
<input name="attachment[1].uri" class="form-control" value="Second URI" type="text">
</div>
<div class="form-group">
<label for="attachment[1].description" class="control-label">Description</label>
<textarea rows="4" name="attachment[1].description" class="form-control">Second Description</textarea>
</div>
</div>
</div>
</div>
。 https://github.com/xueye/express-form-issuenode server.js
を実行し、http://localhost:3000
に移動してエントリを送信します。リクエスト本体がコンソールに表示され、次のように表示されます。
{ name: '',
type: '',
'attachment[0].name': 'First Name',
'attachment[0].uri': 'First URI',
'attachment[0].description': 'First Description',
'attachment[1].name': 'Second Name',
'attachment[1].uri': 'Second URI',
'attachment[1].description': 'Second Description' }
私が試行している方法でデータをPOSTすることは可能ですか?
私は、拡張部分が欠落し、角括弧た:エクスプレス4使用中のことを行うには
。それは理にかなっています - 私はいつもアタッチメント[インデックス]は標準化されていると思っていましたが、明らかにそうではありませPHPの –
私は 'name =" attachment [] [uri] "'(配列のインデックス番号なし)を使います。これはexpressでは使えません! –