Как заполнить выпадающий список из mysql после функции replaceWith() с использованием jQuery

#javascript #php #jquery #html

#javascript #php #jquery #HTML

Вопрос:

У меня есть input который может быть изменен на select , когда выбрано значение. Выбор имеет идентификатор type . Я попробовал использовать replaceWith() метод, и он сработал.

Как я могу заполнить select параметрами из моей базы данных после вызова replaceWith() ?

 <?php
  include 'connection.php';

  $result = mysqli_query($cn, "SELECT id, product FROM table_product ORDER BY product ASC");

  $data = array();
  while ($row = mysqli_fetch_row($result))
  {
    $data[] = $row;
  }
?>
  
 <input type="text" name="product" class="form-control" id="product" placeholder="Input Product" required>
  
     $(document).ready(function(){
    $('#type').change(function(){
    $("#product").replaceWith('<select type="text" name="product" class="form-control" id="product" placeholder="Input Product" required><option value="" disabled selected hidden>Select Product</option></select>');

    $.getJSON("getproduct.php", function(data) {
      $.each(data, function(index, item) {
        items  = "<option value='"   item.ID   "'>"   item.Name   "</option>";
      });
      $("#product").html(items); 
    });
  });
});
  

Комментарии:

1. Предполагая, что в DOM есть только один #product элемент, и запрос AJAX выполнен успешно, ваш код должен работать нормально. Попробуйте проверить консоль на наличие ошибок.

2. Спасибо за ваш ответ. В DOM есть более одного #product.

3. Тогда это ваша проблема. Атрибуты Id должны быть уникальными. Создайте новый идентификатор для этого выбора или используйте общие классы и свяжите элементы друг с другом путем обхода DOM.

4. Я изменил идентификатор на #product2, но все еще не работает.

5. Каков ответ от getproduct.php ?