从下拉列表中选择一个值,以在php中的另一个下拉列表值中显示值

时间:2016-12-03 10:06:48

标签: php html

我有两个下拉列表是类别&另一种是产品。我想根据我想在产品下拉列表中显示价值来从类别中选择价值。

下面是我的代码

<!-- <?php
//   include('session.php');
?> -->
<?php
mysql_connect('localhost', 'root', '');
mysql_select_db('product_management');

$sql = "SELECT * FROM category";
$result = mysql_query($sql);



$sql1 = "SELECT * FROM category.c INNER JOIN products.p where WHERE       category_id.p = '$id' ";
$result1 = mysql_query($sql1);
?>


<!DOCTYPE html>
<html>
<head>
<title>Product Page</title>

</head>
<body>

<div class="container-fluid">
<div class="row">
    <div class="col-md-12" style="margin-left: 30%;margin-top: 10%;">
        <form role="form">

            <div class="form-group">

                <label>
                    Category
                </label>
                <select name='category_type' id="category_type">
                <?php
while ($row = mysql_fetch_array($result)) {
echo "<option value='" . $row['category_id'] ."'>" . $row['category_type'] ."</option>";
}
?>
</select>
            </div>

            <div class="form-group">                     
                <label>
                    Products
                </label>
                 <select id="products" name="products" required>
                    <option value=""> -- SELECT -- </option>
                    <?php
while ($row = mysql_fetch_array($result1)) {
echo "<option value='" . $row['products'] ."'>" . $row['products'] ."</option>";
}
?>
                </select> 
            </div>

            <div class="form-group">                     
                <label>
                    Price
                </label>
                <input type="text" id="price" name="price" required> 
            </div>

            <div class="form-group">                     
                <label>
                    Quantity
                </label>
                 <select id="quantity" name="quantity" required>
                    <option value=""> -- SELECT -- </option>
                </select> 
            </div>


            <div class="form-group">

                <label for="exampleInputFile">
                    Upload Image
                </label>
                <input id="exampleInputFile" type="file" />                 
            </div>



            <button type="submit" class="btn btn-default">Submit</button>
        </form>
    </div>
</div>

 

如何实现这一目标?我想从下拉列表中选择一个值,以便在另一个下拉列表值中显示值。

1 个答案:

答案 0 :(得分:1)

您需要对代码进行一些更改,例如:

  • 按以下方式更改 category_type 下拉列表,

    <select name='category_type' id="category_type">
        <option value=""> -- SELECT -- </option>
    <?php
        while ($row = mysql_fetch_array($result)) {
            echo "<option value='" . $row['category_id'] ."'>" . $row['category_type'] ."</option>";
        }
    ?>
    </select>
    

    并为产品创建一个空的下拉列表,如下所示:

    <select id="products" name="products" required>
        <option value=""> -- SELECT -- </option>
    </select> 
    
  • 现在使用AJAX根据所选的 category_type 填充产品下拉列表。创建一个单独的 get_products.php 页面来处理AJAX请求。您可以使用以下jQuery / AJAX代码段将选定的category_id发送到该页面。

    <script>
        $(document).ready(function(){
            $(document).on('change', '#category_type', function(){
                var category_id = $(this).val();
                if(category_id.length != 0){
                    $.ajax({
                        type: 'POST',
                        url: 'get_products.php',
                        cache: 'false',
                        data: {category_id:category_id},
                        success: function(data){
                            $('#products').html(data);
                        },
    
                        error: function(jqXHR, textStatus, errorThrown){
                            // error
                        }
                    });
                }else{
                    $('#products').html('<option value=""> -- SELECT -- </option>');
                }
            });
        });
    </script>
    

    get_products.php 页面上,按以下方式处理您的AJAX请求,

    <?php
    
        if(isset($_POST['category_id'])){
            // your database connection code
    
            $id = $_POST['category_id'];
            $sql = "SELECT * FROM products WHERE category_id = '$id' ";
            $result = mysql_query($sql);
            while($row = mysql_fetch_array($result)){
                echo "<option value='" . $row['product_id'] ."'>" . $row['product_type'] ."</option>";
            }
        }
    
    ?>
    

    根据表格的属性名称更改$row['product_id']$row['product_type']

旁注:不要使用mysql_数据库扩展,从PHP 5.5.0开始不推荐使用它们,并在PHP 7.0.0中完全删除。请改用mysqliPDO驱动程序。这是why you shouldn't use mysql_* functions