#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 ?