【发布时间】:2020-09-20 21:09:00
【问题描述】:
我一直在尝试根据其位置选择表号。我的表单正在工作并且记录已添加到数据库中,但是在数字部分,无论我选择什么,插入的数字都是“32”,即使我在选择“tnum3”中选择了不同的数字。我不知道发生了什么。
表格
<label for="tnum">table number
<select type="number" id="tnum1" name="num">
<?php for ($i = 2; $i <= 9; $i++) : ?>
<option id="in" value="<?php echo $i; ?>"><?php echo $i; ?></option>
<?php endfor; ?></select>
<select type="number" id="tnum2" name="num" style="display: none;">
<?php for ($i = 12; $i <= 23; $i++) : ?>
<option id="out" value="<?php echo $i; ?>"><?php echo $i; ?></option>
<?php endfor; ?></select>
<select type="number" id="tnum3" name="num" style="display: none;">
<?php for ($i = 32; $i <= 35; $i++) : ?>
<option id="tr" value="<?php echo $i; ?>"><?php echo $i; ?></option>
<?php endfor; ?>
</select></label><br>
<label for="loc">location
<select id="loc" name="location" style="width:100%;" onchange="change_tnum(this.value)" required>
<option value="inside" >inside</option>
<option value="outside" >outside</option>
<option value="Porch" >Porch</option>
</select></label><br>
这是一个 JS 函数,它只是根据我选择的位置切换选择标签:
function change_tnum(x){
$('#tnum1').hide();
$('#tnum2').hide();
$('#tnum3').hide();// hide any options already shown
switch (x) { // show whichever option is appropriate
case 'inside':
$('#tnum1').show();
inside();
break;
case 'outside':
$('#tnum2').show();
outside();
break;
case 'porch':
$('#tnum3').show();
terrace();
break;
default:
break;
}
}
【问题讨论】:
-
这有点令人困惑。您的函数仅附加到最后一个选择,其中 valyes 位于外部或门廊内部。也仅仅因为一个选择被隐藏并不意味着它的值没有被选中。
标签: javascript database forms codeigniter