【发布时间】:2021-01-12 14:15:39
【问题描述】:
我正在尝试构建用于搜索目的的 php 动态下拉列表。例如 - 按最低价格和最高价格搜索。尽管它显示了正确的结果,但下拉列表不包含 POST 值。这是我的代码
<div class="form-group">
<select class="form-control" name="minprice" id="minprice">
<option value="">--Min Price--</option>
<?php
$args=array(':type' => 'general');
$sql='SELECT DISTINCT price FROM cars WHERE cartype=:type AND price !=" "';
$stmt=$pdo->prepare($sql);
$stmt->execute($args);
while($row=$stmt->fetch(PDO::FETCH_ASSOC)){
echo '<option value="'.$row['price'].'"'.($row['price']==$_POST['price'] ? ' selected="selected"' : '').'>'.$row['price'].'</option>';
}
?>
</select>
</div>
<div class="form-group">
<select class="form-control" name="maxprice" id="maxprice">
<option value="">--Max Price--</option>
<?php
$args=array(':type' => 'general');
$sql='SELECT DISTINCT price FROM cars WHERE cartype=:type AND price !=" "';
$stmt=$pdo->prepare($sql);
$stmt->execute($args);
while($row=$stmt->fetch(PDO::FETCH_ASSOC)){
echo '<option value="'.$row['price'].'"'.($row['price']==$_POST['price'] ? ' selected="selected"' : '').'>'.$row['price'].'</option>';
}
?>
</select>
</div>
if (isset($_POST['submit']))
{
........
.......
$minprice= $_POST['minprice'];
$maxprice= $_POST['maxprice'];
$stmt=$pdo->query("SELECT * FROM cars WHERE cartype='general'
............
...................
AND price >= '".$minprice."'
AND price <= '".$maxprice."'
");
while($row=$stmt->fetch(PDO::FETCH_ASSOC))
{
include 'carlist.php';
}
}else{.....}
【问题讨论】:
-
您的意思是当您提交表单时,它会从数据库中获取正确的数据,但下拉菜单不会重新填充用户选择的值
-
感谢@RiggsFolly。是的。例如,如果按最低价格搜索为 500,则提交后,最低价格下拉菜单应显示为 500。