У меня есть список инвентаря, хранящийся в базе данных MySQL. У меня есть форма, в которой вводится пользовательский ввод, который обновляет изменения запасов, все в таблице с столбцом “Имя товара” с раскрывающимся списком элементов и столбцом ” # In Stock
настоящее время” # In Stock
столбце ” # In Stock
.
Вот код для моей таблицы:
<table id="updateStockTable">
<thead>
<tr>
<th>Item Name</th>
<th># In Stock</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<select required>
<option></option>
<?php
$query = mysqli_query($db, "SELECT itemName FROM SOISInventoryList ORDER BY itemName");
if(!$query){
echo "Could not grab query.";
}
else{
while($row = mysqli_fetch_assoc($query)){
echo "<option>" . $row['itemName'] . "</option>";
}
}
?>
</select>
</td>
<td>
-
</td>
</tr>
</tbody>
</table>
Выпадающий список “Имя элемента” создается через базу данных. Я хотел бы, всякий раз, когда пользователь выбирает элемент из раскрывающегося списка, чтобы этот номер позиции в запасе отображался в div в # In Stock column
.
Моя проблема такова: раскрывающийся список ” Item Name
генерируется через базу данных, поэтому ни один из элементов в настоящее время не имеет значения, которое является самым простым решением, которое я нашел, когда вы хотите, чтобы выпадающий список отображал содержимое в div. Использование AJAX представляется еще одним возможным решением, но я даже не уверен, как его использовать для списка инвентаря.
Я не уверен, что любая из этих идей является правильным или лучшим решением, и если да, то каким образом я буду использовать любой из них.
РЕДАКТИРОВАТЬ:
Поэтому я решил пойти с методом AJAX. У меня есть отдельный файл PHP, который просто возвращает числа в запасе из базы данных, и теперь я пытаюсь использовать это, чтобы вытащить количество, которое мне нужно для главной страницы. Мне сказали, что мне нужно использовать событие изменения, чтобы инициировать каждое новое значение, и использовать запрос AJAX, но я не знаю, как это сделать, и буду признателен за любую помощь, которую любой может предложить!
Итак, вот решение, которое я придумал:
Я настраиваю отдельный php файл с запросом, который захватывает текущий выбранный элемент раскрывающегося списка и извлекает соответствующее число в значении запаса из базы данных MySQL:
$receivedString = null;
if ($_GET["item"] != ""){
$receivedString = $_GET["item"];
}
if($receivedString != null){
//Check connection
$db = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) OR die ('Could not connect to SOIS MySQL server with error: ' . mysqli_connect_error());
$query = mysqli_query($db, "SELECT numInStock FROM SOISInventoryList WHERE id = $receivedString");
if (!$query){
echo "Could not find query.";
}
while($row = mysqli_fetch_assoc($query)){
echo $row['numInStock'];
}
}
А затем используется функция jQuery.change(), поэтому, когда элемент в раскрывающемся списке изменяется, я могу вызвать отдельный файл php.
$(function(){
$('#itemNameDropDown').change(function(){
var SelectedItem = $(this).val();
//Sending the selected item value to the php file as JSON
//Assuming that the php file is setup to consume $_GET variables
$.get('grab-num-in-stock.php', {"item": SelectedItem})
.done(function(returnedData){
//Assuming just a string is returned right now
$('.numInStockCol').text(returnedData);
});
});
});