Как мне получить данные из базы данных mysql и заполнить динамические поля в форме этими данными? - PullRequest
0 голосов
/ 31 мая 2019

У меня есть форма, в которой пользователь может добавлять товары, которые будут приобретены.Когда пользователь вводит номер элемента в поле «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);
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...