私はちょっと立ち往生しており、解決策を見つけるためにスタックオーバーフローの多くのページを閲覧しました。
入力フィールドを使用して新しい TR を動的に追加できる請求書テーブルがあります。これは正常に機能しますが、最初と 2 番目の入力フィールドでは機能します。
最初のオートコンプリート入力フィールドは、顧客 ID に基づいています。ただし、2 番目のオートコンプリートは、非表示の入力フィールド (ID) に値を追加する最初のオートコンプリートの選択値に基づいています。
2 番目のオートコンプリートは正常に機能しますが、テーブルの前の TD にある最後の非表示の入力フィールドの値を取得する必要があります。
各 TR 行のクラスは class=".item-row" です。2 番目のオートコンプリートは、テーブルの 2 番目の TD にあります。
次のスクリプトを使用しています。
// Use the .autocomplete() method to compile the list based on input from user
$(".articleName").autocomplete({
source: function(request, response) {
var $itemrow = $(this).closest('tr');
$.ajax({
url: "getproducts-test.php",
dataType: "json",
data: {
term: request.term,
staffid: $itemrow.find('#debiteuren_staffmembers_id').val()
},
success: function(data) {
response(data);
}
});
},
select: function(event, ui) {
var $itemrow = $(this).closest('tr');
// Populate the input fields from the returned values
$itemrow.find('#articleName').val(ui.item.articleName);
$itemrow.find('#articleSize').val(ui.item.articleDescription);
$itemrow.find('#articlePrice').val(ui.item.articlePrice);
// Give focus to the next input field to recieve input from user
$('#articleQty').focus();
return false;
}
// Format the list menu output of the autocomplete
}).data( "autocomplete" )._renderItem = function( ul, item ) {
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( "<a>" + item.articleName + " - " + item.articleDescription + "</a>" )
.appendTo( ul );
};
あなたが見ることができる場所では、返される正しい値を取得するために ID が必要です。これは機能していないものです:
staffid: $itemrow.find('#debiteuren_staffmembers_id').val()
たとえば、これは HTML です。
<tr class="item-row">
<td>
<textarea name="debiteuren_staffmembers[]" id="debiteuren_staffmembers"></textarea>
<input type="hidden" name="debiteuren_staffmembers_id[]" id="debiteuren_staffmembers_id" value="2">
</td>
<td>
<textarea name="articleName[]" id="articleName"></textarea>
</td>
</tr>
たとえば、staffid を取得するようにコードを変更すると、次のようになります。
staffid: $('#debiteuren_staffmembers_id').val()
それは機能しますが、テーブルの最初の行から最初の隠し入力の値のみを取得し、オートコンプリートが使用されている現在の行からの入力が必要です。
誰かが光を当てることができれば幸いです。皆さん、ありがとうございました。