У меня есть таблица html, в которой я могу добавлять строки, нажимая на кнопку. Теперь каждая строка таблицы содержит 8 td. Основываясь на значении, выбранном из первого поля ввода (автозаполнение) в строке таблицы, остальные части td в этой конкретной строке заполняются данными из базы данных. Теперь все отлично работает с моим кодом, но единственная проблема заключается в том, что эта вещь работает только для первой строки таблицы. Если я добавлю новую строку и выберу что-то новое, тогда td в этой строке не будет заполняться данными. Я думаю, что проблема в том, что что мне придется ссылаться на каждый tr и td в нем и процитировать код через них. Но я не могу этого сделать. Пожалуйста, помогите мне. Вот код-Заполните данные таблицы соответствующим значением, выбранным в определенной строке таблицы
<table class="table table-bordered" id="stock" >
<thead>
<tr>
<td>Sr no.</td>
<td>Product Name</td>
<td>Description</td>
<td>Qty</td>
<td>Unit</td>
<td>Rate</td>
<td>Tax</td>
<td>Dis</td>
<td>Total</td>
<td><input type="button" name="add" id="add" value="+" class="btn btn-warning" /></td>
</tr>
</thead>
<tbody class="details">
<tr>
<td class="no">1</td>
<td><input type="text" name="items[]" id="items" class="form-control items" autocomplete="off" /></td>
<td><textarea name="size[]" id="size" class="form-control size" autocomplete="off"></textarea></td>
<td><input type="text" name="qty[]" id="qty" class="form-control qty" autocomplete="off"/></td>
<td><input type="text" name="unit[]" id="unit" class="form-control unit" autocomplete="off"/></td>
<td><input type="text" name="price[]" id="price" class="form-control price" autocomplete="off"/></td>
<td><input type="text" name="tax[]" id="tax" class="form-control tax" autocomplete="off" /></td>
<td><input type="text" name="dis[]" id="dis" class="form-control dis" autocomplete="off" /></td>
<td><input type="text" name="stkamt[]" id="amt" class="form-control amt" autocomplete="off" /></td>
<td><button class="btn btn-danger remove">X</button></td>
</tr>
</tbody>
<tfoot>
</tfoot>
</table>
вот что моя кнопка добавить does-
$(function(){
$('#add').click(function(){
addnewrow();
});
function addnewrow(){
var n = ($('.details tr').length - 0)+1;
var tr = '<tr>'+
'<td class="no">'+n+'</td>'+
'<td><input type="text" name="items[]" id="items" class="form-control items" autocomplete="off" /></td>'+
'<td><textarea name="size[]" id="size" class="form-control size" autocomplete="off"></textarea></td>'+
'<td><input type="text" name="qty[]" id="qty" class="form-control qty" autocomplete="off"/></td>'+
'<td><input type="text" name="unit[]" id="unit" class="form-control unit" autocomplete="off"/></td>'+
'<td><input type="text" name="price[]" id="price" class="form-control price" autocomplete="off"/></td>'+
'<td><input type="text" name="tax[]" id="tax" class="form-control tax" autocomplete="off" /></td>'+
'<td><input type="text" name="dis[]" id="dis" class="form-control dis" autocomplete="off" /></td>'+
'<td><input type="text" name="stkamt[]" id="amt" class="form-control amt" autocomplete="off" /></td>'+
'<td><button class="btn btn-danger remove">X</button></td>'+
'</tr>';
$('.details').append(tr);
}
вот то, что происходит, когда я выбрать конкретный элемент из выпадающего списка автозаполнения в первую тд и перейти к следующему поле-
$('body').delegate('.items','blur',function(){
checkitems();
});
function checkitems(){
var items = $('#items').val();
if(items == ""){
}else{
$.ajax({
type: 'post',
url: 'itemcheck.php',
data: {key: items},
dataType:'json',
success: function(data) {
if(data){
var tr = $(this).closest('tr'); // here is the code for retrieving the values. i think here i need to make some changes
$('#price').val(data.rate);
$('#size').val(data.des);
$('#qty').val(data.qty);
$('#unit').val(data.unit);
}
else
{
$('#myitemmodal').modal("show");
}
}
});
}
}
Здесь item_check.php проверки, если элемент уже существует или нет .Если он не существует, он отображает новый элемент диалогового окна, и если это произойдет, то он идет к ITEM_ value.php, чтобы получить остальные значения и отобразить их в td в этой строке таблицы. Эта вещь отлично подходит для первой строки, но когда я добавляю новые строки, она не работает. Я постарался предоставить как можно больше информации, пожалуйста, дайте мне знать, если вам нужно что-то еще. Спасибо заранее.
'IDs' должны быть уникальными. Только первая строка может быть заполнена. Предложения? Вы можете либо добавить уникальный идентификатор к каждой новой строке (например, с номером), либо написать немного другую функцию 'JS'. –
В каком смысле? Можете ли вы прокомментировать. @ EdvinTenovimas –
Я могу попытаться решить это, ответив на ваш вопрос с измененным кодом. –