我有一个库存列表存储在MySQL数据库中。我有一个表单,它接受用户输入来更新库存变化,所有这些都在一个表上,其中有一个Item Name列,其中有一个充满项目的下拉列表,以及一个(当前)空白的# 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>
Item Name下拉列表通过数据库生成。我希望,每当用户从下拉菜单中选择商品时,该商品的库存编号将显示在# In Stock column
的div中。
我的问题是这样的: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);
});
});
});