2017-07-03 71 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