Проблема в том, что вы используете id для инициализации и выбора выпадающего списка select2, и идентификаторы должны быть уникальными, поэтому он используется только один раз.
Простой способ исправить это без частого обновления кода - добавить индекс и увеличивать его каждый раз, когда вы нажимаете кнопку btn_addOrder
. Затем вы можете прикрепить этот индекс к вашему селектору, и он будет работать.
Ваш код будет выглядеть следующим образом:
let i=0;
$(document).on('click','.btn_addOrder', function(){
var html='';
html+='<tr>';
html+='<td><input type="text" class="form-control productname" style="display:none" name="productname[]" readonly></td>';
html+='<td><input type="text" class="form-control totalcp" style="display:none" name="totalcp[]" readonly></td>';
html+='<td><input type="text" class="form-control unitcode" style="display:none" name="unitcode[]" readonly></td>';
html+='<td><input type="hidden" class="form-control productcode" name="productcode[]" readonly></td>';
html+='<td><select class="form-control productid" name="productid[]" id="productid'+i+'" required><option value="0">--Select Product--</option></select></td>';
html+='<td><input type="text" class="form-control productstock" name="productstock[]" readonly></td>';
html+='<td><input type="number" class="form-control quantity_product" name="quantity[]" required></td>';
html+='<td><input type="text" class="form-control productsatuan" name="productsatuan[]" readonly></td>';
html+='<td><button type="button" name="remove" class="btn btn-danger btn-sm btn-remove"><i class="fa fa-remove"></i></button></td>';
$('#myStock').append(html);
$("#productid"+i).select2({
ajax:{
url:"prod.php",
type:"post",
dataType:"json",
delay:250,
data:function(params){ return{ searchTerm:params.term }; },
processResults:function(response){ return{ results:response }; },
cache:true
}
});
i++;
});
Итак, сначала я определяю переменную i=0;
Затем в строке html, к которой вы добавляете выпадающий список Я изменяю идентификатор на id="productid'+i+'"
.
Я переименовываю селектор на $("#productid"+i).select2({
, чтобы выбрать нужный элемент.
Наконец, я добавляю i++;
в конце btn_addOrder
функция, обеспечивающая автоматическое увеличение i
при каждом нажатии кнопки.