编辑:
演示: http://jsfiddle.net/53GKh/6/
我有 2 个 HTML 下拉菜单:
第一个是获取汽车品牌:(工作正常)
<form action="car-list.php" method="get">
<select name="search" id="main_list" >
<option value="BMW"<?php if ($_GET['search']== 'BMW') {echo "selected='selected'"; } ?>>Bmw</option>
</select>
</form>
用户选择品牌后,第二个下拉菜单将被“激活”以选择汽车型号:
<select name="model" id="brand" class="secondary">
<option disabled selected> Kies </option>
</select>
要“激活”第二个下拉菜单,请使用以下 JS 代码:
$(function() {
var sel, i,
list = ['aixman', 'alfaromeo', 'bmw'],
aixman = ['Aixman'],
alfaromeo = ['33', '75'],
bmw= ['1-serie','3-serie','4-serie','5-serie','6-serie'],
astonmartin = ['Cygnet', 'DB7'],
dev_default = '<option value="default" selected>Kies</option>',
sel_brand = $('#brand');
sel_version = $('#version');
$('select').change(function() {
switch (this.id) {
case 'main_list':
sel_brand.find('option').remove();
sel_brand.append(dev_default);
sel_brand.show();
if (this.value == 'BMW') {
for (i = 0; i < bmw.length; i++) {
$("#brand").append(
'<option value="' + bmw[i] + '">' + bmw[i] + '</option>'
);
}
}
break;
}
});
}); //END document.ready()
我刚刚更新了我的 JS 代码:如何在提交/刷新页面后回显第二个保管箱菜单的选定值?
最佳答案
我建议您更改服务器端 PHP 代码以适应此功能。
步骤:
- 每当提交表单时,使用菜单 1 选择获取菜单 2 的所有值并将其设置在变量中。
- 在第二个菜单的 HTML 中,检查步骤 1 中的变量是否
isset()
,如果是,则循环为菜单 2 的选项创建 HTML。此外,在执行此操作时,请使用表单提交中选择的值,预先选择该选项。否则如果empty()
,然后什么也不做。
当用户在菜单 1 中进行选择时,JavaScript 将启动并执行其任务。每当提交表单时,都会预先创建菜单 2。
希望这能让您朝着正确的方向前进。请询问您在实现过程中是否遇到任何困难。
关于javascript - 提交表单后保留下拉菜单的 $_GET 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22581526/