Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery加载文件并在加载文件后自动选择选项_Javascript_Jquery - Fatal编程技术网

Javascript Jquery加载文件并在加载文件后自动选择选项

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”,

开关状态选项列表取决于DB中的值

因为我有很多子列表,这将很难编辑。有更好的方法吗

差不多

$('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 
    }
});