在选择其他下拉列表时填充下拉列表

我有两个下拉框。 我想在第一个下拉框中填充选择的第二个下拉框。 我的值是从数据库中检索。 这可能不使用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

希望这可以帮助。