我有一个带有两个下拉菜单的页面。在第一个下拉菜单中选择的选项控制在第二个下拉菜单中显示的内容。
当下拉菜单只使用一次时,代码既好又简单——但我希望将每组下拉菜单重复四次。
下拉菜单一被分配了 ID experience[<?php echo $i; ?>][manufacturer]
。下拉菜单二分配了 ID experience[<?php echo $i; ?>][type]
。
本质上,我得到的是:
<select id="experience[1][manufacturer]">...</select>
<select id="experience[2][manufacturer]">...</select>
<select id="experience[3][manufacturer]">...</select>
<select id="experience[4][manufacturer]">...</select>
... 其次是:
<select id="experience[1][type]">...</select>
<select id="experience[2][type]">...</select>
<select id="experience[3][type]">...</select>
<select id="experience[4][type]">...</select>
我想知道:将等价物<?php echo $i; ?>
放入用于输出第二个下拉菜单内容的 JavaScript 块中的最佳方法是什么?(我知道我不能像这样在 JavaScript 中直接使用 PHP - 我只是留下了<?php echo $i; ?>
片段来指示我需要在哪里输出数字 1、2、3、4 等。
谢谢你的帮助!
代码:
<form>
<?php
$i=1;
while($i<=4) {
?>
<select id="experience[<?php echo $i; ?>][manufacturer]">
<option value="Ford">Ford</option>
<option value="Honda">Honda</option>
<option value="Mercedes">Mercedes</option>
</select>
<select id="experience[<?php echo $i; ?>][type]">
<script type='text/javascript'>
$(document).ready(function() {
$("#experience[<?php echo $i; ?>][manufacturer]").change(function() {
$("#experience[<?php echo $i; ?>][type]").load("get_type.php?choice=" + $("#experience[<?php echo $i; ?>][manufacturer]").val());
});
});
</script>
</select>
<?php
$i++;
}
?>
</form>
修改后的代码:
<form>
<script type='text/javascript'>
$(document).ready(function() {
$(".experienceManufacturer").change(function() {
$("#experience["+$(this).attr('data-id')+"][type]").load("get_type.php?choice=" + $(this).val());
});
});
</script>
<?php $i=1;
while($i<=4) { ?>
<select id="experience[<?php echo $i; ?>][manufacturer]" class="experienceManufacturer" data-id="<?php echo $i; ?>">
<option value="Ford">Ford</option>
<option value="Honda">Honda</option>
<option value="Mercedes">Mercedes</option>
</select>
<select id="experience[<?php echo $i; ?>][type]">
</select>
<?php
$i++;
}
?>
</form>