0

如果第一个组合框选择是“形成性”选项,我想禁用第二个组合框。我想在不刷新页面的情况下执行此操作,并且我正在使用 PHP。任何人都可以帮忙吗?

PS:如果用户选择“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

4 回答 4

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>";

在这里测试

于 2013-07-02T07:41:52.473 回答
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>
于 2013-07-02T07:38:09.377 回答
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();
  }
});
于 2013-07-02T08:04:12.757 回答
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>';

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

于 2013-07-02T08:11:23.820 回答