簡體   English   中英

下拉列表,其中不包括在上一個下拉列表中選擇的值:PHP

[英]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存儲在selectvar屬性中。

這是一個例子。

這將使用jquery甚至Javasript完成,使用jQuery您可以閱讀.change()函數的文檔,對於具有onchange屬性的Javascript,請嘗試閱讀此問題,它將對您有所幫助: HTML SELECT-觸發器即使選項未更改,JavaScript ONCHANGE事件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM