2017-09-15 16 views
0

検索後に選択ボックスに選択した値を保持します。これは車両検索フィルタページで、ページはphpでコード化され、データベースに接続されています。検索後に選択ボックスのフィールドに選択値を保存します

データベース25+のドライバ21-24のための年齢とdriver_ageで両方のオプションの2列を持っている

コード

<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> 
以下のドライバーの両方の年齢のためにも利用できるいくつかの車両など

ありがとうございました

+0

フォームを送信する方法と返すものを教えてください – SilverSurfer

+0

@ SilverSurfer私の質問を更新してください –

+0

名前attrをhtmlタグに直接入れないのはなぜですか? – SilverSurfer

答えて

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という文で作業するほうが簡単です。

+0

実際には、ドライバフィールドには、このフィールドと同様にdriverageとdatabase_age.PLeaseデータベースの2つの列があります。データベースのスクリーンショットを確認してください.http://prntscr.com/gldmh2 –

+0

これをチェッカーしてくださいhttp://prntscr.com/gldncuこれは私は値25+を選択して検索をクリックした後、完璧に動作しますが、検索をクリックすると、このようになります。http://prntscr.com/gldo6p –

関連する問題