2017-07-03 90 views
-3

我的表單中有三個列表,其中加載表單時具有相同的選項。Php:在頁面加載時動態更改列表值

但我的要求是:只要用戶選擇第一個選項,它應該從第二個列表中刪除,當用戶給第二個選項時,應該從第三個列表中刪除。所以沒有重複選擇的機會。

<html> 
<head> 
<script language="JavaScript"> 
function enable_text(status) 
{ 
status=!status; 
    document.f1.other_text.disabled = status; 
} 
</script> 
</head> 
<body onload=enable_text(false);> 

<form name=f1 method=post> 
    <label>First Pref : </label> 
    <select name="Colors option 1"> 
    <option value="">Select 1st</option> 
    <option value="R">Red</option> 
    <option value="G">Green</option> 
    <option value="B">Blue</option> 
    <option value="B">Yellow</option> 
</select> 
</br></br> 
<label>Second Pref : </label> 
<select name="Colors option 2"> 
    <option value="">Select 2nd</option> 
    <option value="R">Red</option> 
    <option value="G">Green</option> 
    <option value="B">Blue</option> 
    <option value="B">Yellow</option> 
</select> 
</br></br> 
<label>Third Pref : </label> 
<select name="Colors option 3"> 
    <option value="">Select 3rd</option> 
    <option value="R">Red</option> 
    <option value="G">Green</option> 
    <option value="B">Blue</option> 
    <option value="B">Yellow</option> 
</select> 

+0

究竟什麼是你的問題?你試過什麼了?如果我理解正確:這不是PHP的問題。你可以使用JavaScript來實現這一點。 – BenRoob

+0

你到目前爲止嘗試過什麼?你面臨什麼問題? – Cristina

回答

1

這裏是jQuery的事件change的選擇框,這將禁用選定的選項在其他選擇,但不是在選擇一個。

var selected = $(this).val(); 
$('select').not(this).find('option[value="'+selected+'"]').prop('disabled', true); 

然後,將重新啓動禁用但未選中的選項。

- 我也註冊價值"Y" for yellow

$(function(){ 
 
    $('select').on('change', function(){ 
 
     
 
     var selected = $(this).val(); 
 
     $('select').not(this).find('option[value="'+selected+'"]').prop('disabled', true); 
 
     
 
     // restart options that are disabled, but not selected anymore. 
 
     var selectedElements = ""; 
 
     $('select option:selected').each(function(k,v){ 
 
      selectedElements += (selectedElements!=""?",":"")+ '[value="'+$(this).val()+'"]'; 
 
     }); 
 
     $('select option:disabled').not(selectedElements).prop('disabled', false); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<html> 
 
<head> 
 
</head> 
 
<form name=f1 method=post> 
 
    <label>First Pref : </label> 
 
    <select name="Colors option 1"> 
 
    <option value="">Select 1st</option> 
 
    <option value="R">Red</option> 
 
    <option value="G">Green</option> 
 
    <option value="B">Blue</option> 
 
    <option value="Y">Yellow</option> 
 
</select> 
 
</br></br> 
 
<label>Second Pref : </label> 
 
<select name="Colors option 2"> 
 
    <option value="">Select 2nd</option> 
 
    <option value="R">Red</option> 
 
    <option value="G">Green</option> 
 
    <option value="B">Blue</option> 
 
    <option value="Y">Yellow</option> 
 
</select> 
 
</br></br> 
 
<label>Third Pref : </label> 
 
<select name="Colors option 3"> 
 
    <option value="">Select 3rd</option> 
 
    <option value="R">Red</option> 
 
    <option value="G">Green</option> 
 
    <option value="B">Blue</option> 
 
    <option value="Y">Yellow</option> 
 
</select>

+0

謝謝@ Ultrazz008! – newbie

+0

沒問題的隊友,不客氣! – Ultrazz008

+0

Hi @ Ultrazz008,關於答案的一個簡單問題:這個代碼是什麼'var selectedElements =「」; (函數(k,v)){selectedElements + =(selectedElements!=「」?「,」:「」)+'[value =''+ $(this) .val()+'「]'; }); (選擇選項:禁用)。not(selectedElements).prop('disabled',false);'我很抱歉,但我不明白它的目的。 – newbie