Проблема в том, что вы не указали здесь номер строки
success:function(hasil)
{
$('#spesifikasi').val(hasil.spesifikasi);
}
, поэтому он изменил только первый элемент, так как не знал, какой вход "spesifikasi" будет изменен.
РЕШЕНИЕ у вас должно быть что-то вроде этого
<select name="id_komoditi[]" id="id_komoditi" class="form-control chzn_select_L" data-spesifikasi="0">
и это на вашем первом входе spesifikasi
со значением data-spesifikasi совпадает с номером строки, которую нужно изменить.
, затем отредактируйте вашу addRow функцию в строке итерации, поэтому она даст значение номера строки длянеобходимый столбец ввода
for(var i=0; i<colCount; i++)
{
var newcell = row.insertCell(i);
newcell.innerHTML = table.rows[1].cells[i].innerHTML;
cellToChange = $(newcell).find('.form-control');
if($(cellToChange[0]).attr("class") == "form-control chzn_select_L")
$(cellToChange[0]).data("spesifikasi", (rowCount-1))
else if($(cellToChange[0]).attr("id") == "spesifikasi0")
$(cellToChange[0]).attr("id", "spesifikasi"+(rowCount-1))
}
и выбранная вами функция () должны быть такими:
$(".chzn_select_L").chosen().on('change',function(e){
event.stopImmediatePropagation();
var id_komoditi = $(this).val();
var spesifikasi_target = $(this).data("spesifikasi");
$.ajax({
url: '<?=base_url();?>back/transaksi/Order/Detail_Item',
method: 'POST',
data:{
id_komoditi: id_komoditi,
},
dataType:'json',
success:function(hasil)
{
$('#spesifikasi'+spesifikasi_target).val(hasil.spesifikasi);
}
});
});
Число / индекс 0 равенотвечает за каждый номер строки, который вы используете, поэтому вы должны изменить каждый вход, который вы используете, чтобы индекс в их идентификаторе и имени совпадал с номером строки
Поэтому выполучит разные целевые spesifikasi для каждого выбранного входа
PS: просто спросите большеесли вы все еще не знаете о них