所以我有一个包含以下ItemID,ItemName和ItemPrice的表。我有一个下拉菜单,它通过数据库中的ItemID列出项目的名称。现在,我想根据用户从下拉菜单中选择的内容显示该项目的价格。
以下是我的尝试:
<?php
include ("account.php");
include ("connect.php");
$query = "SELECT * FROM Inventory";
$result = mysql_query($query);
$options ="";
while ($row = mysql_fetch_array($result))
{
$options .= '<option value="' . $row["ItemID"] . '">' . $row["ItemName"] . '</option>';
}
echo '<select name="ItemName">' . $options . '</select>';
$getPrice = "SELECT ItemPrice FROM Inventory WHERE ItemID = '$options' ";
$getPrice = mysql_query($getPrice);
$getPrice = mysql_result($getPrice, 0);
echo '<label for="Price">Price: </label>';
echo "$getPrice";
?>
它显示下拉菜单中的项目,但无论我选择什么,我都无法显示价格。我是整个PHP节目的新手,不知道我做错了什么。
答案 0 :(得分:0)
$getPrice = "SELECT ItemPrice FROM Inventory WHERE ItemID = '$options' ";
这就是问题所在。 $ options变量包含带有不同选项的html文本,但PHP并不了解这一点。该变量不包含用户要选择的项目的ID。
您需要将变量发送到另一个(或相同的)PHP页面。
您应该阅读本教程:enter link description here
答案 1 :(得分:0)
你能试试吗,
<script>
$(document).ready(function () {
$(".Items").change(function(){
window.location.href='?ItemID='+$(this).val();
});
});
<script>
PHP代码:
<?php
include ("account.php");
include ("connect.php");
$query = "SELECT * FROM Inventory";
$result = mysql_query($query);
$options ="";
while ($row = mysql_fetch_array($result))
{
$options .= '<option value="' . $row["ItemID"] . '">' . $row["ItemName"] . '</option>';
}
echo '<select name="ItemName" class="Items">' . $options . '</select>';
$ItemID = $_GET['ItemID']; // retrive ItemID from querystring
$getPrice = "SELECT ItemPrice FROM Inventory WHERE ItemID = '$ItemID' ";
$getPrice = mysql_query($getPrice);
$getPrice = mysql_result($getPrice, 0);
echo '<label for="Price">Price: </label>';
echo "$getPrice";
?>
另一种方法:
echo '<select name="ItemName" onchange="ItemPrice(this)">' . $options . '</select>';
的javascript:
<script>
function ItemPrice(d){
window.location.href='?ItemID='+d.value;
}
</script>
注意:请使用mysqli_ *函数代替mysql_ *函数(不建议使用)