2016-05-03 18 views
0

ドロップダウンで選択した値に基づいて、同じページに4つのタイプのフォームを表示できます。リアタイヤ・2WD iはフォーム名= "RA"同じPHPページで複数のフォームを表示して非表示にするには

enter image description here

条件1を表示する]を選択した場合::

条件1があればリアタイヤとMFWDが選択されている場合、私は、フォームを表示したいです名前= "RB" enter image description here

は条件1:フロントタイヤとMFWDは、私は、フォーム名= "FA"を表示する]を選択した場合enter image description here

条件1:フロントタイヤと2WD iはフォーム名=「FB」 enter image description here

を表示する]を選択した場合、私はそれが複数のページを作成することで動作するが、それは、ページの読み込みが遅くなり得ると同じページの選択した値に基づいて読み込みたい場合は

+4

あなたの質問をバックアップするためにいくつかのHTMLコードを追加する必要があります。ドロップダウンのHTMLコードなど。 – RRK

+0

フォームを設定して、表示しないことはできません。フォームを表示するには、jquery .show()を使用しますか? –

+0

2WDが第1の条件では「A」に対応するが、第4の条件では「B」に対応する理由はあるか?フォームの名前がより一貫したパターンに従うと、このロジックは簡単に実装できます。 –

答えて

1
<select class="FrontRearTire"> 
    <option value="">Select Tire</option> 
    <option value="RearTire">Rear Tyre</option> 
    <option value="FrontTire">Front Tire</option> 
</select> 

<select class="TractorType"> 
    <option value="">Select Tractor</option> 
    <option value="2WD">2WD</option> 
    <option value="MFWD">MFWD</option> 
</select> 

<div class="RearTire2WD" style="display:none;"> 
    <form>RearTire2WD</form> 
</div> 

<div class="RearTireMFWD" style="display:none;"> 
    <form>RearTireMFWD</form> 
</div> 

<div class="FrontTire2WD" style="display:none;"> 
    <form>FrontTire2WD</form> 
</div> 

<div class="FrontTireMFWD" style="display:none;"> 
    <form>FrontTireMFWD</form> 
</div> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script> 
<script> 
    $('.FrontRearTire').change(function(){ 
     var frontRearTire= $('.FrontRearTire').val(); 
     var tractorType= $('.TractorType').val(); 
     show(frontRearTire,tractorType); 
    }); 
    $('.TractorType').change(function(){ 
     var frontRearTire= $('.FrontRearTire').val(); 
     var tractorType= $('.TractorType').val(); 
     show(frontRearTire,tractorType); 
    }); 
    function show(frontRearTire,tractorType){ 
     var showDiv = "."+frontRearTire+tractorType; 
     $(showDiv).show().siblings("div").hide(); 
    } 
</script> 

+0

フォーム提出の後、選択したフォームを保存するにはどうすればいいですか? [Submit]ボタンをクリックすると[Page Refresh]が表示され、デフォルトに設定されます。私は選択したフォームを保持したい – Kin

0

JSをたくさん使わずにこのようにするのは、フォームオプションを選択するたびにページを再読み込みすることです。

<select onChange="this.form.submit()"> 

CBOが更新された後にページをリロードします:各<select>オン

は、次のコードを追加します。

そこから、次のドロップダウンでif文を実行します。

if($_POST['tyre'] == 'rear' && $_POST['type'] == '2WD') { 
    require_once '_rbForm.php'; 
} 

私が言ったように、クイックn汚い。それは完璧ではありませんが、あなたが求めているものとすばやく行っています。

+0

だから私は 'GO'ボタンを正しく使用する必要はありませんか? – Kin

+0

しかし、複数の '.php'ページをロードしたくありません。ページ上のフォームを表示したり隠したりしたい – Kin

+0

' onChange() 'を省略してボタンを使うと、同じロジックが次のCBOにも適用されます。入力に対してifステートメントを実行するだけです。フォームの表示と非表示は、私が 'require_once'を暗示していたものです。すべてのフォームを個別のファイルに作成し、必要なときにそれらを組み込むだけで、より洗練されたコードを作成できます。 –

1

のみJavaScriptを使用してと解決策があります:

function check() 
 
{ 
 

 
    var select1=document.getElementById('s1').value; 
 
    var select2=document.getElementById('s2').value; 
 
    
 
    if ((select1==1)&&(select2==1)){ 
 
    document.getElementById('default').innerHTML = document.getElementById("RA").innerHTML; 
 
    } 
 
    else if ((select1==1)&&(select2==2)){ 
 
    document.getElementById('default').innerHTML = document.getElementById("RB").innerHTML; 
 
    } 
 
    else if ((select1==2)&&(select2==1)){ 
 
    document.getElementById('default').innerHTML = document.getElementById("FA").innerHTML; 
 
    } 
 
    else if ((select1==2)&&(select2==2)){ 
 
    document.getElementById('default').innerHTML = document.getElementById("FB").innerHTML; 
 
    } 
 

 
}
<select onchange="check();" id="s1"> 
 
    <option value="0" selected disabled>Select element</option> 
 
    <option value="1">Rear Tire</option> 
 
    <option value="2">Front Tire</option> 
 
</select> 
 

 
<select onchange="check();" id="s2"> 
 
    <option value="0" selected disabled>Select element</option> 
 
    <option value="1">2WD</option> 
 
    <option value="2">MFWD</option> 
 
</select> 
 

 
<div id="default"></div> 
 
<div id="RA" style="display: none;">Form RA</div> 
 
<div id="RB" style="display: none;">Form RB</div> 
 
<div id="FA" style="display: none;">Form FA</div> 
 
<div id="FB" style="display: none;">Form FB</div>

+0

ありがとう@wanderしかしdropdown2がドロップダウン1に依存している場合はどうすれば管理できますか? 'Rear + 2WD'のロードは' RA'と 'Rear + MFWD'ロード' RB'は 'Front + ... – Kin

+0

私は2つの選択肢を持つ摘要で投稿を編集しました。 – wander

0

あなたは純粋なJavascriptを(いなくてもjQueryの)と同じページにdivを表示し、非表示にすることができます:

function showMe(what) { 
var targ = what.options[what.selectedIndex].value; 
var allDivs = document.getElementsByClassName('output'); 
for (i = 0; i < allDivs.length; i++) allDivs[i].style.display = 'none'; 
document.getElementById('div_' + targ).style.display = 'block'; 
} 

次にHTML:

<select name="zob" onchange="showMe(this)"> 
<option value='' selected>-- select --</option> 
<option value="1">RA</option> 
<option value="2">RB</option> 
<option value="3">FA</option> 
<option value="4">FB</option> 
</select> 
<hr> 
<div id='div_1' class='output'>This is option 1 selected</div> 
<div id='div_2' class='output'>This is option 2 selected</div> 
<div id='div_3' class='output'>This is option 3 selected</div> 
<div id='div_4' class='output'>This is option 4 selected</div> 

次にCSS:

.output{ 
    display: none; 
} 

参照jsFiddle:数分で説明を与えるhttps://jsfiddle.net/48cp42r7/

1

<form id=form> 
 

 
<select id=first onfocus="validate()" onchange ="validate()"> 
 
<option disabled=disabled selected=selected>please Choose</option> 
 
<option>Rear Tire</option> 
 
<option>Front Tire</option> 
 

 
</select> 
 

 
<select id=seconed onfocus="validate()" onchange ="validate()"> 
 
<option disabled=disabled selected=selected>please Choose</option> 
 
<option>MFWD</option> 
 
<option>2WD</option> 
 

 
</select> 
 
<input type=submit value="go"> 
 

 
</form> 
 

 
<form id="RA" style="display:none"><input type=submit value="RA"></form> 
 
<form id="RB" style="display:none"><input type=submit value="RB"></form> 
 
<form id="FA" style="display:none"><input type=submit value="FA"></form> 
 
<form id="FB" style="display:none"><input type=submit value="FB"></form> 
 

 
<script> 
 
function validate(){ 
 
var first = document.getElementById("first"); 
 
var firstval = first.options[first.selectedIndex].value; 
 
var seconed = document.getElementById("seconed"); 
 
var seconedval = seconed.options[seconed.selectedIndex].value; 
 

 
if(firstval == "Rear Tire" && seconedval == "2WD"){ 
 
document.getElementById("RA").style.display=""; 
 
document.getElementById("RB").style.display="none"; 
 
document.getElementById("FA").style.display="none"; 
 
document.getElementById("FB").style.display="none"; 
 
}else if(firstval == "Rear Tire" && seconedval == "MFWD"){ 
 
document.getElementById("RA").style.display="none"; 
 
document.getElementById("RB").style.display=""; 
 
document.getElementById("FA").style.display="none"; 
 
document.getElementById("FB").style.display="none"; 
 
} 
 
else if(firstval == "Front Tire" && seconedval == "MFWD"){ 
 
document.getElementById("RA").style.display="none"; 
 
document.getElementById("RB").style.display="none"; 
 
document.getElementById("FA").style.display=""; 
 
document.getElementById("FB").style.display="none"; 
 
} 
 
else if(firstval == "Front Tire" && seconedval == "2WD"){ 
 
document.getElementById("RA").style.display="none"; 
 
document.getElementById("RB").style.display="none"; 
 
document.getElementById("FA").style.display="none"; 
 
document.getElementById("FB").style.display=""; 
 
} 
 
else{} 
 

 
} 
 
</script>

関連する問題