Javascript Jquery加载文件并在加载文件后自动选择选项
开关状态选项列表取决于DB中的值 因为我有很多子列表,这将很难编辑。有更好的方法吗 差不多Javascript Jquery加载文件并在加载文件后自动选择选项,javascript,jquery,Javascript,Jquery,开关状态选项列表取决于DB中的值 因为我有很多子列表,这将很难编辑。有更好的方法吗 差不多 $('country').val("<?PHP echo data from DB; ?>") 这很复杂,我尽力解释 您可以构建映射,以根据国家代码aus识别州页面aus_state.php,根据州代码识别位置页面,以及一些必要的更深层次的映射。这些映射可以从数据库或项目结构构建 变量映射={ 国家/州:{ aus:'aus_state.php', 英语:“eng_countie.php”,
$('country').val("<?PHP echo data from DB; ?>")
这很复杂,我尽力解释
您可以构建映射,以根据国家代码aus识别州页面aus_state.php,根据州代码识别位置页面,以及一些必要的更深层次的映射。这些映射可以从数据库或项目结构构建
变量映射={
国家/州:{
aus:'aus_state.php',
英语:“eng_countie.php”,
美国:“us_state.php”
},
州/地区:{
aus_ACT:'aus_ACT.php',
澳大利亚新南威尔士州:“aus_NSW.php”,
...
//州代码似乎有一个国家前缀
//因此,您可以在地图中合并所有国家的位置。
usa_CA:'usa_CA.php',
}
};
与动态创建所有JS代码不同,您可以在单独的JS文件中的函数中编写静态部分,并且只使用PHP生成更改部分。这里只有国家/州/地点发生变化。您可以将代码放在HTML页面的底部,以便在$document.ready处理程序之前对其进行计算和初始化
变量选择\u状态={
国家:,
国家:,
地点:
};
在单独的JS文件中重写加载/选择逻辑,并将其加载到带有标记的HTML页面中
$function{
$'country'。加载'country.php',函数{
$country.vals\u state.country;
if!mapping.country\u state[选择\u state.country]
回来
$'state'.loadmapping.country\u state[selection\u state.country],函数{
$'state'.vals\u state.state;
if!mapping.state\u位置[选择\u state.state]
回来
$'location'.loadmapping.state\u location[selection\u state.state],函数{
$'location'.vals\u state.location;
};
};
};
};
似乎没有必要按顺序加载国家/州/位置。您可以并行执行加载。下面的代码具有更好的性能,但在某些列表加载失败时,它的行为与前面的代码不同
$function{
$'country'。加载'country.php',函数{
$country.vals\u state.country;
};
如果映射.country\u state[选择\u state.country]{
$'state'.loadmapping.country\u state[selection\u state.country],函数{
$'state'.vals\u state.state;
};
}
如果映射.state\u位置[选择\u state.state]{
$'location'.loadmapping.state\u location[selection\u state.state],函数{
$'location'.vals\u state.location;
};
}
};
另外,对于步骤1,与其为不同的国家/州请求不同的页面,我认为最好只请求两个页面来获取国家/地区,并将国家代码/州代码作为参数传递。例如,请求澳大利亚所有州的country_state.php?country=aus。这将简化服务器端和客户端的逻辑,并且您将获得更清晰的项目结构。使用mod_rewrite,您可以根据需要将aus_state.php的请求绑定到country_state.php?country=aus
$('country').val("<?PHP echo data from DB; ?>")
$("#country").val("<?PHP echo $country;?>").change(function(){
switch($("#country").val()){
case "aus":$("#state").load("aus_state.php");break
case "eng":$("#state").load("eng_countie.php");break
case "usa":$("#state").load("us_state.php");break
}
});
$("#state").val("<?PHP echo $state;?>").change(function(){
switch($("#state").val()){
case "aus_ACT":$("#location").load("aus_ACT.php");break
//...Put all countries's states here
}
});