AJAXのポストメソッド(合計30個の入力)の場合、後のPHP処理のために変数をバインドするのが簡単にできると思いました。しかし、私はそれが、うまくdoesntの仕事を行うことができると思っていた道...JavaScriptの動的変数名(AJAX)
私のjavascriptのコード:HTMLで
for (i = 1; i < 10; i++) {
var fieldname+i = $('#f' + i + 'name').val();
var fieldspecify+i = $('#f' + i + 'specify').val();
var fieldwidth+i = $('#f' + i + 'width').val();
var data = {
fieldname+i: fieldname+i,
fieldspecify+i: fieldspecify+i,
fieldwidth+i: fieldwidth+i
};
}
マイコード:
<?php for($i = 1; $i < 10; $i++) { ?>
<div style="margin-top:25px;" class="row">
<div class="col-md-5">
<label for="f<?= $i; ?>name">Veld <?= $i; ?>: Wat is de vraag van het veld?</label>
<input type="text" class="form-control" id="f<?= $i; ?>name"
placeholder="Bijv. Wat is 1 + 2?"/>
</div>
<div class="col-md-4">
<label for="f<?= $i; ?>specify">Veld <?= $i; ?>: Soort veld</label>
<select class="form-control" id="f<?= $i; ?>specify">
<option disabled selected>Selecteer..</option>
<option value="0">Tekst-input</option>
<option value="1">Selecteer-input</option>
<option value="2">Textarea-input</option>
</select>
</div>
<div class="col-md-3">
<label for="f<?= $i; ?>width">Veld <?= $i; ?>: Breedte</label>
<select class="form-control" id="f<?= $i; ?>width">
<option disabled selected>Selecteer..</option>
<option value="0">25%</option>
<option value="1">50%</option>
<option value="2">75%</option>
<option value="3">100%</option>
</select>
</div>
</div>
は、私の質問は:でどのようにして30行を入力するよりも簡単に変数をバインドできますか?
一意のIDの代わりにクラスを使用します。次に、それらをループするだけで、DOMを走査して関連する要素を見つけることができます。具体的な例が必要な場合は、質問にHTML(または短縮版)を追加してください。 –
動的プロパティ名の場合、 'var data = {};'や 'data [fieldname + i] = ...'などを使うことができます。 – xander
@RoryMcCrossanそれはどうですか?それらは '$( '#f' + i + 'name')として使うことができます。val()'のように、あるいは何を意味していますか? – xander