Есть форма:
<form method="post" enctype="multipart/form-data" id="myform" class="myform">
<div class="person-list">
<div class="row person-item" id="original-person-item">
<div class="col-md-3">
<div class="form-group control-wrap">
<input type="text" name="actorsOther[0][name]" class="form-control" placeholder="Имя на русском" maxlength="200" max="200">
</div>
</div>
<div class="col-md-3">
<div class="form-group control-wrap">
<input type="text" name="actorsOther[0][nameEng]" class="form-control" placeholder="Имя на английском" maxlength="200" max="200">
</div>
</div>
<div class="col-md-3">
<div class="form-group control-wrap">
<input type="text" name="actorsOther[0][nameOrig]" class="form-control" placeholder="Имя на родном" maxlength="200" max="200">
</div>
</div>
<div class="col-md-3">
<div class="form-group control-wrap">
<select class="selectpicker form-control" name="actorsOther[0][profession][]" data-live-search="true" multiple>
<option value="1">один</option>
<option value="2">два</option>
</select>
</div>
</div>
</div>
</div>
<button type="button" id="addPerson" class="btn btn-danger">Добавить поле</button>
<p><button type="submit" class="btn btn-danger" id="submit" onclick="sendform();">Сохранить</button>
</form>
<script>
function sendform(){
$('#submit').prop('disabled', true);
$('#progress').css('display','block');
var formData = new FormData(document.forms.myform);
$.ajax({
type: "POST",
processData: false,
contentType: false,
url: "../ajax.php?add",
data: formData,
success:function(data){
$("#messInfo").html(data);
$('#submit').prop('disabled', false);
$('#progress').css('display','none');
},
error:function(data){
alert('error');
$('#submit').prop('disabled', false);
$('#progress').css('display','none');
}
})
}
$('#addPerson').click(function() {
var newVideoItem = $('#original-person-item').clone();
newVideoItem.find('.control-wrap').each(function(index) {
var newSelectpicker = $(this).find(".selectpicker");
if (newSelectpicker.length) {
$(this).html(newSelectpicker)
newSelectpicker.selectpicker();
}
});
newVideoItem.appendTo(".person-list");
});
</script>
Кнопка добавляет новые поля. Но есть проблема с массивом для получения данных с формы. Подскажите пожалуйста, как изменить имена полей формы: [0], [1], [2]... при их добавлении (нажатии на кнопку id="addPerson"). Чтобы при добавлении нового поля было не:
actorsOther[0][name]
actorsOther[0][nameEng]
actorsOther[0][nameOrig]
actorsOther[0][profession][]
а уже:
actorsOther[1][name]
actorsOther[1][nameEng]
actorsOther[1][nameOrig]
actorsOther[1][profession][]
actorsOther[2][name]
actorsOther[2][nameEng]
actorsOther[2][nameOrig]
actorsOther[2][profession][]
и т.д.
как-то так ?
var count = 0;
$('#submit').prop('disabled', true);
$('#progress').css('display','block');
var formData = new FormData(document.forms.myform);
$('#addPerson').click(function() {
var newVideoItem = $('#original-person-item').clone();
count++;
newVideoItem.find("[name='actorsOther[0][name]']").attr('name', 'actorsOther['+count+'][name]');
newVideoItem.find("[name='actorsOther[0][nameEng]']").attr('name', 'actorsOther['+count+'][nameEng]');
newVideoItem.find("[name='actorsOther[0][nameOrig]']").attr('name', 'actorsOther['+count+'][nameOrig]');
newVideoItem.find("[name='actorsOther[0][profession][]']").attr('name', 'actorsOther['+count+'][profession]');
newVideoItem.find('.control-wrap').each(function(index) {
var newSelectpicker = $(this).find(".selectpicker");
if (newSelectpicker.length) {
$(this).html(newSelectpicker)
//newSelectpicker.selectpicker();
}
});
newVideoItem.appendTo(".person-list");
});
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости