如果第一个组合框选择是“形成”选项,我想禁用第二个组合框。我想这样做而不刷新页面,我正在使用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>';
答案 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,这有助于避免错误。