我有两个下拉列表是类别&另一种是产品。我想根据我想在产品下拉列表中显示价值来从类别中选择价值。
下面是我的代码
<!-- <?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>
如何实现这一目标?我想从下拉列表中选择一个值,以便在另一个下拉列表值中显示值。
答案 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中完全删除。请改用mysqli
或PDO
驱动程序。这是why you shouldn't use mysql_*
functions。