看了你的代码,你的数据源,也就是下拉框的值应该不是这段代码里拿的,但你JS肯定是取到了。第1个JS中根据bindData去构造出第1个下拉框。其中判断了i是不是0,这里我没看懂,是不是你自己修改了代码,因为if(i ==0)的else里两段代码一样的。(我的理解是如果为0,插入1条空选项或‘全部’选项)。循环结束后,第1个方法设置了第0位的值为默认的选项,即表示第1个下拉框默认选成第1项,再后来调用下面的JS去联动构造第2个下拉框。
网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了蕉城免费建站欢迎大家使用!
第2个下拉框首先接收参数,然后先清空所有的option,然后根据上面方法传下来的参数ddl_data,去构造第2个下拉框,道理同1.
看了下keywords的意思,大概是你的数据源把所有数据都取得了,这里根据keywords去筛选。。。这还不是传统意义的联动到后台取数据再重新构造。 而是笼统的取得所有数据,加上keywors去判断要不要把对应的值塞进下拉框内
还有事这个地方报错么?越看这段越像只是在初始化,难道初始化的时候就报错,还不是下拉改变时候才报?
//:ComboBoxText.java
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JComboBox;
import javax.swing.JFrame;
public class ComboBoxText {
private String[][] xxx = {
{"浙江","杭州","温州","绍兴","舟山",},
{"江苏","南京","无锡","徐州","蒙眬",},
{"上海","闵行区","普陀区","金山区",},
};
private Object[] a(){
Object[] os = new Object[xxx.length];
for(int i=0; ixxx.length; i++){
os[i]=xxx[i][0];
}
return os;
}
private Object[] b(Object a){
for(int i=0; ixxx.length; i++){
if(xxx[i][0].equals(a)){
Object[] o = new Object[xxx[i].length-1];
for(int j=0; jo.length; j++)
o[j]=xxx[i][j+1];
return o;
}
}
return new Object[]{};
}
public static void main(String[] args) {
final ComboBoxText ct = new ComboBoxText();
final JComboBox ca = new JComboBox(ct.a());
final JComboBox cb = new JComboBox();
ca.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
cb.removeAllItems();
Object selected = ca.getSelectedItem();
Object[] newItems = ct.b(selected);
for(int i=0; inewItems.length; i++)
cb.addItem(newItems[i]);
}
});
ca.setSelectedIndex(-1);
JFrame f = new JFrame();f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().setLayout(new FlowLayout(FlowLayout.LEFT));
f.add(ca);f.add(cb);f.setVisible(true);
f.setSize(200,100);
}
}
首先得把省的数据读出来,放在省的下拉列表里面,然后调用JavaScript的onchange方法,创建级联列表。注意的是Javascript接收Java传递过来的数据只能是字符串形式。
这个应该不是很难
你可以通过select的onchange事件,提交表单,
在页面调用查询方法,给这个方法传参数就可以了,这样就可以改变,cityList,countryList....的值
也就获得了你要的效果,你也可以用ajax,其实原理是一样的
都是提交了表单,再调用查询方法,不同的是前一种,只要一个传参方法,
后者,要把获得的List显示在select中
简单的说,当页面点击省的时候,拿到该省的ID去数据库查询属于该省的市,并把所有市返回到下拉列表中,当选择了市后,会根据省,市的id去查询下属的县....以此类推,上级发生改变,下级就要跟着改变
很简单啊,可以用List和Map解决,省用List存,相应的市用List存储,并且放到Map里面,Key用省,依次……