在选择另一个组合框的选项时禁用组合框

时间:2013-07-02 07:33:43

标签: php

如果第一个组合框选择是“形成”选项,我想禁用第二个组合框。我想这样做而不刷新页面,我正在使用PHP。有人可以帮忙吗?

P.S。:如果用户选择“submative”选项,我想在他/她选择选项时获取变量中的第二个组合框值。

我真的很困,因为我是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>';

4 个答案:

答案 0 :(得分:2)

您不能直接在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>";

测试HERE

答案 1 :(得分:0)

添加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>

答案 2 :(得分:0)

使用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();
  }
});

答案 3 :(得分:0)

试试这个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>';

尽量保持风格一致;大括号,引号等坚持一个,它会帮助你。并根据validator检查您的HTML,这有助于避免错误。