0

所以我有一个表,其中包含以下 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 节目的新手,不知道我做错了什么。

4

2 回答 2

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_* 函数(已弃用)

于 2013-11-06T21:13:22.880 回答
0
$getPrice = "SELECT ItemPrice FROM Inventory WHERE ItemID = '$options' ";

这就是问题所在。$options 变量包含一个带有不同选项的 html 文本,但 PHP 对此并不了解。该变量不包含用户将要选择的项目的 ID。

您需要将变量发送到另一个(或相同的)PHP 页面。

您应该阅读本教程:在此处输入链接描述

于 2013-11-06T21:08:55.367 回答