2017-09-06 9 views
0

私はRVのとキャンピングカーとも私はjQueryのか、PHPで私は「Rvのを」選択した場合、それを行うにはどうすればよい2つの選択値が動的である場合、最初の選択リストオプションに基づいて2番目の選択リストを変更する方法はありますか?

<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>Total No. of Passengers*</p> 


<select class="half" name="passengers" id="passengers"> 
<option>No. of Passengers</option> 
     <option <?php if(@$_REQUEST['passengers'] == 1){?>selected<?php }?>>1</option> 
    <option <?php if(@$_REQUEST['passengers'] == 2){?>selected<?php }?>>2</option> 
    <option <?php if(@$_REQUEST['passengers'] == 3){?>selected<?php } ?>>3</option> 
    <option <?php if(@$_REQUEST['passengers'] == 4){?>selected<?php }?>>4</option> 
     <option <?php if(@$_REQUEST['passengers'] == 5){?>selected<?php }?>>5</option> 
     <option <?php if(@$_REQUEST['passengers'] == 6){?>selected<?php }?>>6</option> 
     <option <?php if(@$_REQUEST['passengers'] == 7){?>selected<?php }?>>7</option> 
    <option <?php if(@$_REQUEST['passengers'] == 8){?>selected<?php }?>>8</option> 

</select> 
</div> 

を持っているのである車両の2種類を持っている車検索フィルタのためのPHPページを持っています最初に選択しますか? 2番目の選択は私に8人の乗客を表示するでしょう。私は最初の選択でキャンパーバンを選択した場合、第2の選択は私に5人の乗客を示すだろう。..

+0

はい、そのためにJavaScriptコードを記述する必要があります。 –

答えて

0

私はおそらくこれらの線に沿って何かするだろう:

<?php 
$number_of_passengers = 8; 
if(!empty($_REQUEST['car_type'])) { 
    $number_of_passengers = $_REQUEST['car_type'] == 'Campervans' ? 5 : 8; 
} 

$passengers = 0; 
if(!empty($_REQUEST['passengers'])){ 
    $passengers = (int) $_REQUEST['passengers']; 
} 
?> 

<select class="car" name="car_type" id="car_type"> 
    <option value="0">Select Vehicle</option> 
    <option value="RV/Motorhome">RV/Motorhome</option> 
    <option value="Campervans">Campervans</option> 
</select> 

<select class="half" name="passengers" id="passengers"> 
    <option>No. of Passengers</option> 
    <?php 
    for($i = 1; $i <= $number_of_passengers; $i++) { 
     ?> 
     <option 
      <?php 
       if($i == $passengers) { 
        echo ' selected '; 
       } 
      ?> 
      > 
      <?php echo $i ?> 
     </option> 
     <?php 
    } 
    ?> 
</select> 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
<script> 
    $('#car_type').change(function() { 

     $("#passengers").children().removeAttr("selected"); 

     if ($(this).val() === 'Campervans') { 
      $('#passengers option:nth-child(n+7)').hide(); 
     } else { 
      $('#passengers option').show(); 
     } 
    }); 
</script> 

がこれを行うためのクリーンな方法があるが、これは役立つはずですポイントを取得する。 PHPについて注意する

いくつかのこと:

  1. $_REQUESTキーがemptyを使用して利用可能な場合、私はどのようにチェックを参照してください - これは一般的に良いアイデアではありません@を使用する必要がなくなります。

  2. 8回それを入力すると退屈ですので、私は、コードの重複を避けるために選択する乗客のオプションをエコーするためにループを使用しています;-)

・ホープ、このことができます!

+0

ありがとうございますが、乗客のフィールドには何も表示されません。私の更新された質問をよくご理解ください。 –

+0

@NeerajMishra - '$ number_of_passengers'をインスタンス化するコードを編集しました。それがあなたのために今働くかどうか私に教えてください。 – Bananaapple

+0

構文解析エラー:予期せぬ「if(T_IF)in C:\ xampp \ htdocs \ Vehicle \ index.php in 150」 –

0

はい、そのためにjavascriptコードを追加する必要があります。 あなたのページの下にコードを挿入し、これがあなたが望むものであるかどうかを確認しますか?

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
<script type="text/javascript"> 
    $('.car').on('change', function(){ 
    if($(this).val() === 'RV/Motorhome'){ 
     $('.half').find('option').show() 
    }else if($(this).val() === 'Campervans'){ 
    $('.half').find('option').slice(6).hide(); 
    } 
    }) 
</script> 
+0

のデフォルトの選択値として2を選択しますが、それでも選択ボスには8人の乗客が表示されます。ionly show to 5 –

+0

ok取得してください更新を確認してください –

+0

今すぐshopwsのみ1 –

関連する問題