在选择其他下拉列表时填充下拉列表
我有两个下拉框。 我想在第一个下拉框中填充选择的第二个下拉框。 我的值是从数据库中检索。 这可能不使用PHP或我需要中间ajax和php文件从第一个下拉列表和填充值文件获取值。 或者这可以不使用PHP我的意思是只使用Jquery。 请给我一些提示。
假设我有2个国家。 首先是印度,第二是美国。 在第一次下拉我选择国家,如果选择第一个下拉列表,则选择第二个下拉列表填充其各自的状态。
如果您将数据编码为JSON格式,那么您可以执行以下操作:
对于HTML:
jQuery的:
data = { india: ['2011-03-11','2010-02-01'], usa: ['2006-03-11','2009-02-01'] } $('#country').change(function(){ var dateopts = '' $.each(data[$(this).val()],function(i,v){ dateopts += "" }) $('#dates').html(dateopts) })
在更改国家/地区时,将构建并填充第二个选择框的选项。
请参阅此处的工作示例: http : //jsfiddle.net/xHxcD/
上述方法要求将所有数据与初始页面请求一起发送到客户端。 如果您有大量数据,最好通过AJAX接收数据。 最简单的方法是在PHP中使用与客户端相同的数据结构构建一个对象,然后使用json_encode将其转换为JSON字符串并将其回显。
将此读入您的客户端将如此简单:
$.ajax('myJsonData.php?country=india',function(jsonData){ data.india = jsonData })
你可以这样做。 如果您不想使用ajax,只需将每个选项加载到对象中即可。 然后,当您从选择#1中选择某些内容时,使用来自对象的关联数据数组填充#2。
如果我这样做,除非有数据TON,否则我不会用ajax做。
是的,你可以不使用PHP。 为此,您需要在Javascript数组中分配两个不同的状态列表,并根据选择只更改另一个选择框中的选项。 就如此容易。
如果您使用数据库来存储状态,则可以在加载页面时使用服务器端脚本语言分配javascript数组。
但除非你的数据非常少,否则不要这样做。 在你的情况下,你只有2个国家,所以你可以继续它。
让我们举一个简单的例子,我将它用于你想要的相同目的,它的工作原理非常好。
这是国家下拉菜单:
"; while($clist=mysql_fetch_array($countrylist)) { echo ""."
"; } echo ""; ?>
这是地区下拉:
现在创建一个名为crlist.js的单独文件,并将其包含在具有上述代码的页面中,如下所示:
crlist.js的代码:
var request = false; /*@cc_on @*/ /*@if (@_jscript_version >= 5) try { request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) { request = false; } } @end @*/ function fillSelect(country,path) { var url = path+"crlist.php?country=" + country; request.open("GET", url, true); request.onreadystatechange = go; request.send(null); } function go() { if (request.readyState == 4) { //if (request.status == 200) { var response = request.responseText; var list=document.getElementById("region"); for (i = list.length - 1; i>=0; i--) { list.remove(i); } var records=response.split('|'); for (i=1; i=0; i--) { list.remove(i); } //while (list.childNodes[0]) { //list.removeChild(list.childNodes[0]); //} } fillSelect(this.value,path); //alert(this.value); } //fillSelect(country.value); }
现在创建一个名为crlist.php的独立文件。
crlist.php的代码:
".$region['Name'].""; } ?>
现在在具有下拉菜单的页面上添加以下脚本:
这是我自己的脚本,我假设您已经创建了国家和地区表。 但是您需要根据数据库结构调整查询和上面的代码。
参考我的回答: 使用jQuery / PHP的Cascade Dropdown List
希望这可以帮助。