1

我在下拉框中有一个宽度列表。它们是动态的,因为每个产品都有不同的宽度,所以我设置了代码来查找最小值和最大值。然后它以 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/8 选择下拉框的代码。

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

如果有这样的代码来简单地更改另一个下拉框禁用=禁用,那就太好了?那有意义吗?我还在学习编程术语!

4

1 回答 1

1

您可以使用 onchange()调用另一个函数,该函数应检查为第一个值选择的数字。如果是最大值,则切换功能以隐藏第二个元素。一个更简洁的解决方案是在 doCalc 中包含“检查最大值并切换是否为真”。

请记住让 PHP 也检查该值,因为如果用户选择第二个值,然后选择第一个块的最大值,它应该隐藏第二个,但它的值可能仍会被发送。

编辑:

<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 放在 .php 文件中,则将 php 放在 javascript 中没有问题。它按照评论中的OP所述工作,太棒了!

于 2012-07-15T07:44:13.303 回答