搜索

时间:2017-09-15 06:20:01

标签: php jquery

我希望在搜索后将所选值保留在选择框中。这是一个车辆搜索过滤器页面,页面使用php编码并与数据库连接。

  

数据库有两列选项,驱动器年龄为21-24岁,driver_age为25岁以上,因为有些车辆也适用于两个司机年龄

下面的代码

<script>
$('#driver').change(function() {
  if($('#driver option:selected').val() == '21-24') {
    $('#driver').attr('name','driverage');
  }

  if($('#driver option:selected').val() == '25+') {
    $('#driver').attr('name','driver_age'); 
  }
});
</script>

<form id="myform" method="GET" action="">
  <div class="fields">
    <p>Vehicle Type</p>
    <select class="car" name="car_type" id="car_type">
      <option value="0">Select Vehicle</option>
      <?php if(count($vehicleType) > 0 ){
        foreach($vehicleType as $vt){ ?>
          <option value="<?php echo $vt ?>" <?=isset($_GET['car_type'])&&$_GET['car_type']==$vt?'selected':'';?> ><?php echo $vt ?></option>
          <?php }

      } ?>
    </select>
  </div>

  <div class="fields">
    <p>Age of Youngest Driver</p>
    <select class="half" id="driver" name="">
      <option value="21-24">21-24</option>
      <option value="25+">25+</option>        
    </select>
  </div>

  <input type="hidden" name="search" />
  <div class="fields" style="text-align:center">
    <input type="submit" value="Search" class="mitsub" />
  </div>    
</form>

谢谢,请帮助

1 个答案:

答案 0 :(得分:0)

您可以在foreach()内添加条件语句,将selected属性添加到option。这将确保在选项列表中选择所选值。

<?php
if(count($vehicleType) > 0 ){
  foreach($vehicleType as $vt){
    echo "<option value='$vt'";
    if(isset($_GET['car_type']) && $_GET['car_type'] == $vt){
      echo " selected";
    }
    echo ">$vt</option>\r\n";
  }
}
?>

你可以一个一个地做到这一点,你只需要确保逻辑是正确的。

echo "<option value='$vt'" . ((isset($_GET['car_type'] && $_GET['car_type'] == $vt) ? " selected" : "") . ">$vt</option>\r\n";

我发现使用完整的if语句更容易。