我建立一个Web应用程序。 在一些点,用户需要将数据输入到一个形式。 这种形式有几个文本字段和DropDownLists
。
其中的DDL依赖于以前的DDL。 所发生的是,当用户选择从第一DDL的值,则第二DDL应当从涉及第一DDL的选择的值的数据库加载数据。
到现在为止,我只实现PHP
和JS
,(没有AJAX
, jQuery
处理我的大部分问题,或其他任何东西)。
我想知道的第一DDL中选择了项目后,如何填充从数据库中第二DDL。
任何帮助,将不胜感激。 谢谢!
下面是一个例子:
http://tutorialzine.com/2011/11/chained-ajax-selects-jquery/
谷歌是你的朋友:)
如果在第二个下拉的数据依赖于在所述第一数据,那么你将不得不到第二下拉的值加载到javascript对象,像这样:
// Given the options in the first dropdown are: "foo", "bar", and "baz"
var secondData = {
foo: ['lorem', 'ipsum'],
bar: [1,2,3],
baz: []
}
一个“变化”事件添加到第一个下拉,并考虑到下拉的值,加载与包含在值的第二下拉的内容secondData
对象。
如果你舒适的使用jQuery(我会强烈建议),这样的事情应该做的:
$("#dropdown").on("change", function() {//change [dropdown] to the actual ID of your dropdown
var selected=$(this).find("option:selected").val();//assuming your dropdown has a value to send, otherwise use text()
$.get("options.php?selected="+selected, function(data) {
var options=data.split("\n");
var newSelectHTML="<select name=\"whatever\">\n";
for (var i=0;i<options.length;i++) {
newSelectHTML+="<option>"+options[i]+"</option>";
}
newSelectHTML+="</select>";
$("#form").append(newSelectHTML);//again, change [form] to the correct ID.
}
}
此代码简单地获取与ID“下拉”(视需要而定)的DDL的当前选择的选项的值,并将其发送给在PHP文件options.php $_GET["selected"];
。 假设文件然后输出的一个新行(分离选项的列表\n
)。 中的JavaScript然后采取的是,通过线将其分解,在选项循环,并创建一个新的DDL HTML和追加一条到元件ID form
。 没有错误处理是存在的,但是,正如他们所说,是读者的练习。 不管返回是在可变data
。
文章来源: How to load second DropDown list from Database after first DropDownList is changed