[英]Dropdown list which excludes value selected in previous dropdown list: PHP
我是Web開發的新手,需要有關PHP表單編碼的幫助。
需要創建一個包含5個下拉列表的表單。 第一個下拉列表中的值為“ A,B,C,D,E,F,G”。 如果假設在第一個下拉列表中選擇了“ C”,則第二個下拉列表將具有除“ C”以外的所有值,即; “A,B,d,E,F,G”。 如果假設我們在第二個下拉列表中選擇“ A”,則第三個下拉列表中顯示的值將是除下拉列表1和2中選擇的值以外的所有值。因此,下拉列表3中的值將為“ B,D,E,F,G”。
同樣,其他兩個下拉框也會發生這種情況。
您可以嘗試的一種方法是跟蹤需要在陣列中刪除哪些選項。 然后,您可以定義哪個選擇控制哪個。 舉個例子:
給定這個html
<select id="a" var="b">
<option>-- SELECT --</option>
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
<option value="d">d</option>
<option value="e">e</option>
</select>
<select id="b" var="c" disabled>
<option>-- SELECT --</option>
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
<option value="d">d</option>
<option value="e">e</option>
</select>
<select id="c" disabled>
<option>-- SELECT --</option>
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
<option value="d">d</option>
<option value="e">e</option>
</select>
你可以使用這個jQuery
var doNotShow = [];
$('select').change( function() {
var nextSelect = $(this).attr("var");
doNotShow.push($(this).val());
$.each(doNotShow, function( index, value ) {
$("#" + nextSelect + " option[value='" + value + "']").prop('disabled', true);
});
$("#" + nextSelect).prop('disabled', false);
$(this).prop('disabled', true);
});
doNotShow.push($(this).val());
跟蹤所有先前選擇的值,然后$.each
從下一個select
的行中刪除(或在這種情況下,禁用)不需要的選項,該select
存儲在select
的var
屬性中。
這將使用jquery甚至Javasript完成,使用jQuery您可以閱讀.change()函數的文檔,對於具有onchange屬性的Javascript,請嘗試閱讀此問題,它將對您有所幫助: HTML SELECT-觸發器即使選項未更改,JavaScript ONCHANGE事件
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.