У меня есть форма, в которой пользователь может добавлять товары, которые будут приобретены.Когда пользователь вводит номер элемента в поле «DPB SKU», описания продукта динамически заполняются из базы данных в поле ввода «Описание элемента».
Я могу заполнить только первое «Описание элемента»поле с данными из базы данных, но я не знаю, как или где настроить мой код, чтобы новые динамические поля также заполнялись на основе введенного «SKB DPB».
Заранее благодарен за любую помощьс этой темой.
Поля ввода формы HTML-> «showProduct (this.value)» запускается, когда пользователь вводит номер элемента в поле «dpb_sku»:
<td><input type="text" name="dpb_sku[]" id="dpb_sku1" class="form-
control input-sm" onchange="showProduct(this.value)" required /></td>
<td><input type="text" name="purchase_order_item_name[]"
id="purchase_order_item_name1" class="form-control input-sm" required
/></td>
PHP-код для получения данных из базы данных:
$q = intval($_GET['q']);
$con = mysqli_connect($servername,$username,$password,$dbName);
if (!$con) {
die('Could not connect: ' . mysqli_error($con));
}
mysqli_select_db($con,"ajax_info");
$sql="SELECT * FROM products WHERE product_sku = '".$q."'";
$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_array($result)) {
$product_description = $row['product_description'];
echo $product_description;
}
mysqli_close($con);
JQUERY и AJAX-код для динамического добавления данных в поле ввода:
<script>
function showProduct(str) {
if (str=="") {
document.getElementById("dpb_sku1").innerHTML="";
return;
}
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (this.readyState==4 && this.status==200) {
var infoPrint = document.getElementById("purchase_order_item_name1").innerHTML=this.responseText;
$("#purchase_order_item_name1").val(infoPrint);
}
}
xmlhttp.open("GET","get_product.php?q="+str,true);
xmlhttp.send();
}
</script>
HTML-код для добавления дополнительных полей динамически-> этогде функция "showProduct (this.value)" должна запускаться, когда пользователь вводит номер элемента в динамически создаваемое поле "dpb_sku":
$(document).ready(function(){
$(document).on('click', '#add_row', function(){
count++;
$('#total_item').val(count);
var html_code = '';
html_code += '<tr id="row_id_'+count+'">';
html_code += '<td><input required type="text" name="dpb_sku[]"
id="dpb_sku'+count+'" class="form-control input-sm"
onchange="showProduct(this.value)" /></td>';
html_code += '<td><input required type="text"
name="purchase_order_item_name[]"
id="purchase_order_item_name'+count+'" class="form-control input-sm"
/></td>';
$('#invoice-item-table').append(html_code);
});