我在下拉框中有一个宽度列表。它们是动态的,因为每个产品都有不同的宽度,所以我设置代码来寻找最小值和最大值。然后它以1“的增量设置下拉列表。
宽度旁边是1/8“增量。例如,你可以选择52 1/8。
如果最大宽度为92英寸,那么1/8增量下拉框应该消失或禁用,因为92是最大值...你不能选择92 1/8。
如何使1/8框消失或禁用?这是我当前下拉框代码的一部分。
<select name="width_str" id="width_str" onchange="doCalc();" style="width:50px;">
<option value="">--</option>
<?php
$counter = $minwidthRS - 1;
$start = $minwidthRS;
for($start; $start < $maxwidthRS + 1; $start++) {
$counter = $counter + 1;
echo "<option value=".$counter.">".$counter."</option>";
}
?>
</select>
选择下拉框的代码,当我选择上面的MAXIMUM时,我想要禁用或消失1/4。
<select name="widthfrac_str" id="widthfrac_str" onchange="doCalc();" style="width:50px;">
<option value="">--</option>
<option value="1/8">1/8</option>
<option value="1/4">1/4</option>
<option value="3/8">3/8</option>
<option value="1/2">1/2</option>
<option value="5/8">5/8</option>
<option value="3/4">3/4</option>
<option value="7/8">7/8</option>
</select>
我知道如何使用AJAX将选定的宽度值发送到PHP页面并在那里进行比较,但是我在成功回调中发回了什么?我可以发送一些告诉容器1/8测量下拉列表禁用或消失的内容吗?
非常感谢!如果您需要更多代码,请告诉我。 doCalc()脚本基本上使用AJAX并将宽度发送到php处理页面,以便立即更新价格。
编辑(添加了更多代码):
这是我的剧本的一部分..
<script type="text/javascript">
function doCalc(){
var roomX = $('#room_str').val();
... lots of variables set here
$.post('db_query.php',
{roomX:roomX, etc. etc. etc.},
function(data) {
data = $.parseJSON(data);
$('#roomname-placeholder').html(data.roomname);
// ... lots of placeholders and code here
});
return false;
};
</script>
不确定它是否有帮助,但我学会了一些关于使用回调来改变输入字段并用它替换它的值:$('input[name=x_login]').val(data.loginid);
如果有这样的代码只是更改另一个下拉框disabled = disabled会很棒吗?那有意义吗?我还在学习编程术语!
答案 0 :(得分:1)
你可以使用onchange()来call another function,它应该检查为第一个值选择的数字。如果是最大值,则将函数切换为hide第二个元素。一个更简洁的解决方案是在doCalc中包含'检查最大值并切换为真'。
请记住让PHP检查值,因为如果用户选择第二个值AND然后是第一个块的最大值,它应该隐藏第二个值,但它的值可能仍然会被发送。
编辑:
<script type="text/javascript">
function doCalc(){
var roomX = $('#room_str').val();
if (roomX == <?php echo $maxwidthRS; ?>)
{
document.getElementById('widthfrac_str').style.display = 'none';
// You also need to make the second element's value 0 within those brackets
}
... lots of variables set here
$.post('db_query.php',
{roomX:roomX, etc. etc. etc.},
function(data) {
data = $.parseJSON(data);
$('#roomname-placeholder').html(data.roomname);
// ... lots of placeholders and code here
});
return false;
};
</script>
将php放在javascript中是没有问题的,如果它在.php文件中。它在评论中表达了OP,很棒!