如果第一个组合框选择是"形成性"选项,我想禁用第二个组合框。我想在不刷新页面的情况下完成这项工作,而且我使用的是PHP。有人能帮忙吗?
附言:如果用户选择"subactive"选项,当他/她选择该选项时,我希望获得变量中的第二个组合框值。
我真的被困了,因为我是PHP的新手。如果有人能帮助我,我将不胜感激。
以下是代码:
echo'<select> <option valuet=" " selected="selected">Choose one</option>';
echo '<option valuet=1>formative</option>';
echo '<option valuet=2>Submative</option>';
echo "</select>";
$quizzes.... //query to get data from sql
echo'<select> <option valuer=" " selected="selected">Choose....</option>';
foreach($quizzes as $id2 => $name)
{
echo "<option valuer=".$id2.">".$name."</option>";
}
echo "</select>";
编辑:已解决
感谢所有帮助我的人,你真的解决了我的问题:)
这就是解决我未来使用问题的答案:
<script type="text/javascript">
$(document).ready(function() {
$('#combo_1').change(function(){
if($(this).val() === '1'){
$('#combo_2').attr('disabled', 'disabled');
}else{
$('#combo_2').attr('disabled', false);
}
});
});
和在PHP中:
echo '<select id="combo_1">';
echo '<option value=" " selected="selected">Choose one</option>';
echo '<option value="1">formative</option>';
echo '<option value="2">Submative</option>';
echo '</select>';
$quizzes = $DB->get_records_menu('quiz', array('course' =>$courseid),'','id, name');
echo '<select id="combo_2">';
echo '<option value=" " selected="selected">Choose....</option>';
foreach($quizzes as $id2 => $name) {
echo '<option value=' . $id2 . '>' . $name . '</option>';
}
echo '</select>';
你不能直接用PHP来做,你可以在你的页头中包含jQuery文件
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
然后写下:
<script type='text/javascript'>
$(document).ready(function() {
$('#my_sel').change(function(){
if($(this).val() === '1'){
$('#second').attr('disabled', 'disabled');
}else{
$('#second').attr('disabled', false);
}
});
});
</script>
并将您的php更改为:
echo'<select id="my_sel"> <option valuet=" " selected="selected">Choose one</option>';
echo '<option valuet=1>formative</option>';
echo '<option valuet=2>Submative</option>';
echo "</select>";
$quizzes.... //query to get data from sql
echo'<select id="second"> <option valuer=" " selected="selected">Choose....</option>';
foreach($quizzes as $id2 => $name)
{
echo "<option valuer=".$id2.">".$name."</option>";
}
echo "</select>";
在这里测试
试试这个JavaScript/jQuery解决方案:
<script type="text/javascript">
$(document).ready(function() {
$('#combo_1').change(function () {
$('#combo_2').attr('disabled', (this.val() === '1' ? 'disabled' : ''));
});
});
</script>
并更改您的PHP代码如下:
echo '<select id="combo_1">';
echo '<option value=" " selected="selected">Choose one</option>';
echo '<option value="1">formative</option>';
echo '<option value="2">Submative</option>';
echo '</select>';
$quizzes.... //query to get data from sql
echo '<select id="combo_2">';
echo '<option value=" " selected="selected">Choose....</option>';
foreach($quizzes as $id2 => $name) {
echo '<option value=' . $id2 . '>' . $name . '</option>';
}
echo '</select>';
尽量保持风格一致;大括号、引号等。坚持一个,它会对你有所帮助。并根据验证器检查HTML,这有助于避免错误。
使用jquery,您可以这样做:
以HTML形式给出:
<select id='firstSelect'><option>...</option></select>
<select id='secondSelect'><option>...</option></select>
这是javascript:
$('#firstSelect').change(function(event){
switch (event.target.value){
case '1'://formative
$('#secondSelect').disable();
break;
case '2'://submative
var valueYouWant = $('#secondSelect').value;
default:
$('#secondSelect').enable();
}
});
添加jQuery库。
试试这个:
echo'<select> <option valuet=" " onchange="change_select(this)" selected="selected">Choose one</option>';
echo '<option valuet=1>formative</option>';
echo '<option valuet=2>Submative</option>';
echo "</select>";
$quizzes.... //query to get data from sql
echo'<select name="second"> <option valuer=" " selected="selected">Choose....</option>';
foreach($quizzes as $id2 => $name)
{
echo "<option valuer=".$id2.">".$name."</option>";
}
echo "</select>";
<script type="text/javascript">
function change_select(args) {
if ($(args).val() == "1") {
$('[name="second"]').prop('disabled', 'disabled');
}
}
</script>